我有一个非常简单的查询,由于某种原因似乎不起作用 - 没有显示错误,但似乎没有执行,所以我想知道它是否是错误的(但在语法上是正确的) )生成查询。我想看看生成的查询 - 不好的是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
我想如果没有更多数据就很难调试,但我决定提一下。如果需要,我已准备好提供更多信息,我愿意接受任何指示。提前谢谢。