PHP函数'mysqli_prepare'的输出是什么意思

What does the output of PHP function 'mysqli_prepare' mean

我是 PHP 的新手,准备了 SQL 个句子,我在阅读文档时遇到了一个问题。

函数 'mysqli.prepare' returns 执行时的布尔值。根据文档:

mysqli_prepare() returns a statement object or FALSE if an error occurred.

这不是对返回值的非常详细的描述。我的意思是,它什么时候会失败?仅当 SQL 语法不正确时?或者当我们尝试执行它但由于任何其他原因它不起作用时(我将最后一个假设基于文档中显示的示例,其中几乎所有脚本都包含在 if 语句中)

基于此,我还有第二个问题:运行 mysqli_prepare()if 一起使用是否是一个好的做法?还是后面我们运行函数$stmt->execute();的时候应该写if语句?

查询失败的原因太多了。但是当查询失败时,您可以得到带有 mysqli_error()mysqli_errno() 的错误消息。当查询失败时,mysqli_prepare() 函数将 return FALSE (而不是 MySQLi 准备语句对象)指示出现错误。您必须使用 if() 语句检查 return 值以处理这种情况。如果你不检查它并尝试 运行 $stmt->execute(); 你会得到一个错误,你不能 运行 布尔值的 execute() 方法(值 false).

关于你的第二个问题:你必须检查 mysqli_prepare() 的 return 值,你必须检查 mysqli_stmt_execute() 的 return 值。您不能跳过检查,否则会出现 mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc... expects parameter 1 to be resource.

之类的错误