使用PHP,我试图删除一条记录,但我想检查它是否成功。从成功的DELETE FROM foo where bar = 'stuff'
返回的是什么?
或者,您是否知道检查DELETE是否成功的其他方法?或者我最好只是在删除它之前确保该行存在?我想尽可能避免另一个查询。
答案 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 语句,INSERT
,UPDATE
,DELETE
,DROP
等,mysql_query()
返回<成功时强> TRUE ,错误时 FALSE 。