首页 >数据库 >mysql教程 >MySQLi 的`prepare()`返回值仅指示准备错误还是也指示执行错误?

MySQLi 的`prepare()`返回值仅指示准备错误还是也指示执行错误?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-14 18:16:12297浏览

Does MySQLi's `prepare()` Return Value Indicate Only Preparation Errors or Also Execution Errors?

MySQLi 准备语句错误报告

当利用 MySQLi 执行 SQL 查询时,有效处理错误报告至关重要。在提供的代码片段中,stmt_init() 方法的返回值用于检测 SQL 准备期间的错误,出现了一个挥之不去的疑问:

prepare 语句的返回值是否仅指示 SQL 中的错误语句准备还是执行错误?

为了阐明这一点,请考虑以下替代错误处理方法:

if($stmt_test->execute()) $errorflag=true;

此代码在语句执行期间检查错误。但是,没有必要实现此额外检查,因为prepare()方法的返回值包含准备错误和执行错误。

为了确保全面的错误报告,建议将以下行添加到您的连接代码中:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

这可以报告所有 mysqli 错误。这样一来,您就可以不需要检查返回值并直接编写语句,如下例所示:

$stmt = $mysqli->prepare("INSERT INTO testtable VALUES (?,?,?)");
$stmt->bind_param('iii', $x, $y, $z);
$stmt->execute();

任何阶段发生错误都会抛出 PHP 异常。可以像任何其他 PHP 错误一样处理或报告此异常。通过适当配置 PHP 错误报告,您可以确保错误在开发过程中显示在屏幕上并记录在生产服务器上。

以上是MySQLi 的`prepare()`返回值仅指示准备错误还是也指示执行错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn