PHP mysql返回bool(true),即使字段不在表中?

时间:2014-05-29 19:15:35

标签: php mysql sql

 $sql = "UPDATE prelaunch SET email_verified = true WHERE email_verification_link = '$cKey' AND email_verified = '0'";

 $res = mysqli_query($con, $sql);
 var_dump($res);
即使bool(true)不是表中的有效密钥,

email_verification_link也是var_dump ...?如果email_verified密钥有效,它会将email_verification_link值更新为1.

当密钥无效时,它仍会返回bool(true) ..如何在单个sql语句中更新表之前检查密钥是否有效?

2 个答案:

答案 0 :(得分:4)

返回true表示查询成功。返回false表示查询失败。找不到行并不是一个失败。失败就像破坏的SQL语法,这意味着您的查询无法运行。

相反,请检查mysqli_affected_rows功能:

$rows = mysqli_affected_rows($con);

答案 1 :(得分:0)

好吧,查询返回true,因为UPDATE命令已成功执行。您可以使用命令查看命令影响了多少行 mysqli_affected_rows()