0

我有一个非常简单的查询,由于某种原因似乎不起作用 - 没有显示错误,但似乎没有执行,所以我想知道它是否是错误(但语法正确)生成的查询. 我想看看生成的查询 - 不好的是 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

我想如果没有更多数据,这将很难调试,但我决定我会提到它。如果需要,我准备提供更多信息,并且我愿意接受任何指示。提前致谢。

4

0 回答 0