成功的MySQL DELETE返回什么?如何检查DELETE是否成功?
问题描述:
使用PHP,我试图删除一条记录,但我想检查它是否成功。是否成功返回DELETE FROM foo where bar = 'stuff'
?成功的MySQL DELETE返回什么?如何检查DELETE是否成功?
或者,您是否知道其他方法来检查DELETE是否成功?或者我最好在确定行存在之前删除它?如果可能,我试图避免另一个查询。
答
假设你正在使用mysql_query:
对于其他类型的SQL语句,INSERT,UPDATE的,DELETE,DROP等,请求mysql_query()返回TRUE或FALSE的成功错误。
如果使用PDO::exec,则手册上说的:
PDO :: EXEC()返回由你发出的SQL语句进行修改或删除的行数。如果没有行受到影响,PDO :: EXEC()返回0
不想回答鹬,但因为这被选为答案,我要指出的mysql_query将返回TRUE
即使查询并没有真正删除任何东西。你应该使用mysql_affected_rows
来检查。
答
你可以试试这个为你的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>";
}
“不想回答鹬”哦,不!不是我宝贵的宝贵点! =) – biggusjimmus 2009-05-28 19:11:01
+1 for mysql_affected_rows – 2013-06-11 09:28:23