什么是一个成功的MySQL DELETE返回? 如何检查DELETE是否成功?

使用PHP,我想删除一个logging,但我想检查它是否成功。 什么东西从一个成功的DELETE FROM foo where bar = 'stuff'返回DELETE FROM foo where bar = 'stuff'

或者,您是否知道其他方法来检查DELETE是否成功? 或者我最好在确定行存在之前删除它? 如果可能,我试图避免另一个查询。

假设你正在使用mysql_query :

对于其他types的SQL语句,INSERT,UPDATE, DELETE ,DROP等,mysql_query()成功返回TRUE,错误返回FALSE。

如果您使用的是PDO :: exec ,那么说明书上说:

PDO :: exec()返回您发布的SQL语句修改或删除的行数。 如果没有行受到影响,PDO :: exec()返回0。

不想回答snipe,但是因为这被选为答案,所以我应该注意,即使查询没有真正删除任何东西,mysql_query也会返回TRUE 。 你应该使用mysql_affected_rows来检查。

另外,如果您关心受影响的行数:

[使用] mysql_affected_rows()来查明有多less行受到DELETE,INSERT,REPLACE或UPDATE语句的影响。

你可以尝试这个为你的php代码,放在你的查询运行后:

 if (mysql_affected_rows() > 0) { echo "You have successfully updated your data.<br><br>"; } else { echo "The data you submitted matched the current data so nothing was changed.<br><br>"; }