什么是一个成功的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>"; }