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

时间:2009-05-28 18:11:19

标签: php mysql

使用PHP,我试图删除一条记录,但我想检查它是否成功。从成功的DELETE FROM foo where bar = 'stuff'返回的是什么?

或者,您是否知道检查DELETE是否成功的其他方法?或者我最好只是在删除它之前确保该行存在?我想尽可能避免另一个查询。

4 个答案:

答案 0 :(得分:57)

假设您正在使用mysql_query

  

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

如果您使用的是PDO::exec,则手册会说明这一点:

  

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

不想回答snipe,但由于这被选为答案,我应该注意mysql_query将返回TRUE,即使查询实际上没有删除任何内容。您应该使用mysql_affected_rows来检查。

答案 1 :(得分:35)

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

  

[Use] mysql_affected_rows()以查找DELETE,INSERT,REPLACE或UPDATE语句影响的行数。

答案 2 :(得分:15)

你可以尝试使用你的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>";
}

答案 3 :(得分:0)

对于其他类型的 SQL 语句,INSERTUPDATEDELETEDROP等,mysql_query()返回<成功时强> TRUE ,错误时 FALSE