SQL UPDATE无法正常工作?

时间:2010-09-30 08:33:45

标签: php mysql codeigniter

在我的LAMP应用程序中(使用CodeIgniter),我调用了$ this-> db-> update ...,它生成如下SQL:

UPDATE `MyTable` SET `MyProcess` = 5 WHERE `Id` = 1

问题在于这似乎间歇性地工作 - 我目前不知道可能出现什么问题。在尝试更新时,我需要了解有关MySQL的任何信息吗?我正在加入&更新记录(但每5秒钟可能只有一次查询)。当我在phpMyAdmin中运行查询时,它可以正常工作。

2 个答案:

答案 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的等效项)来查看实际更新的行,如果不显示或记录错误消息。这可以帮助您解决问题。