在我的LAMP应用程序中(使用CodeIgniter),我调用了$ this-> db-> update ...,它生成如下SQL:
UPDATE `MyTable` SET `MyProcess` = 5 WHERE `Id` = 1
问题在于这似乎间歇性地工作 - 我目前不知道可能出现什么问题。在尝试更新时,我需要了解有关MySQL的任何信息吗?我正在加入&更新记录(但每5秒钟可能只有一次查询)。当我在phpMyAdmin中运行查询时,它可以正常工作。
答案 0 :(得分:3)
这是马克答案的补充。如果您尝试更新记录,mysql_affected_rows
也会返回0
,但该记录中的值不会更改。
例如; MyTable
中的当前值:
+----+-----------+
| ID | MyProcess |
+----+-----------+
| 1 | 5 |
+----+-----------+
然后当您运行查询时:
UPDATE `MyTable` SET `MyProcess` = 5 WHERE `Id` = 1
mysql_affected_rows
将返回0
这可能是您案件中发生的事情吗?
答案 1 :(得分:1)
可以吸引人们的一件事是,如果表格中不存在id
由于某种原因你不会从UPDATE
语句中得到任何错误 - 它会默默地做什么都没有。
您可以使用例如mysql_affected_rows
(或数据库API的等效项)来查看实际更新的行,如果不显示或记录错误消息。这可以帮助您解决问题。