我有一个非常简单的查询,由于某种原因似乎不起作用 - 没有显示错误,但似乎没有执行,所以我想知道它是否是错误(但语法正确)生成的查询. 我想看看生成的查询 - 不好的是 Query 对象的 getSql() 方法($this->_modelsManager->getLastQuery()->getSql())似乎只适用于 Select 语句(https ://github.com/phalcon/cphalcon/blob/master/phalcon/mvc/model/query.zep#L3563)。
有问题的代码如下:
return $this->_modelsManager->executeUpdate("UPDATE " . __CLASS__ . "
SET
hitCount = IFNULL(hitCount, 0) + 1
WHERE
uniqueHash = :uniqueHash:
", ['uniqueHash' => $uniqueHash]);
我用函数中收到的值手动替换了这些值,即
echo "UPDATE " . __CLASS__ . "
SET
hitCount = IFNULL(hitCount, 0) + 1
WHERE
uniqueHash = ".$uniqueHash
并且生成的查询在 MySQL Workbench 中成功执行(我只需要用实际的表名替换CLASS )
另一个奇怪的事情是,如果我在查询本身中替换表名,我会在错误日志中得到一个非常奇怪的错误:
PHP Fatal error: Cannot redeclare class My\\Model\\Counter
我想如果没有更多数据,这将很难调试,但我决定我会提到它。如果需要,我准备提供更多信息,并且我愿意接受任何指示。提前致谢。