我对PHP很陌生,我准备了SQL语句,在阅读文档时我有一个问题。
函数'mysqli.prepare‘在执行时返回一个布尔值。根据文件:
如果发生错误,
mysqli_prepare()将返回语句对象或FALSE。
这不是对返回值的非常详细的描述。我是说,它到底什么时候会失败?只有当SQL语法不正确时?或者,当我们尝试执行它,但由于任何其他原因而无法工作时(我的最后一个假设是基于文档中所示的示例,其中几乎所有的脚本都包含在if语句中)
基于此,我还有第二个问题:与mysqli_prepare()一起运行if是一个很好的实践吗?或者应该在以后运行if函数时编写$stmt->execute();语句?
发布于 2018-10-07 16:38:22
查询失败的原因太多了。但是当查询失败时,您可以使用mysqli_error()和mysqli_errno()获得错误消息。当查询失败时,mysqli_prepare()函数将返回FALSE (而不是MySQLi准备语句对象),以指示存在错误。您必须使用if()语句检查返回值以处理这种情况。如果不检查它并尝试运行$stmt->execute();,您将得到一个错误,即不能在布尔值(值false)上运行execute()方法。
对于第二个问题:您必须检查mysqli_prepare()的返回值,还必须检查mysqli_stmt_execute()的返回值。您不能跳过检查,否则会得到类似于行等等..。期望参数1是资源的错误。
https://stackoverflow.com/questions/52687713
复制相似问题