调用“mysqli_stmt_prepare”时是不是应该手动检查错误? [复制]

Posted

技术标签:

【中文标题】调用“mysqli_stmt_prepare”时是不是应该手动检查错误? [复制]【英文标题】:Should I manually check for errors when calling "mysqli_stmt_prepare"? [duplicate]调用“mysqli_stmt_prepare”时是否应该手动检查错误? [复制] 【发布时间】:2022-01-16 00:43:22 【问题描述】:

我正在使用 phpmysqli 准备好的语句。执行mysqli_stmt_prepare() 时是否有令人信服的理由手动检查错误?更具体地说,我不是在询问最终结果,只是准备语句行。

$sql = "SELECT * FROM `users`;";
$stmt = mysqli_stmt_init($db);
mysqli_stmt_prepare($stmt, $sql); // How should I check for error in here
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);

PHP manual 在if 语句中仅放置这一行。

$sql = "SELECT * FROM `users`;";
$stmt = mysqli_stmt_init($db);
if (mysqli_stmt_prepare($stmt, 'SELECT * FROM `users`;')) 
    mysqli_stmt_execute($stmt);
    $result = mysqli_stmt_get_result($stmt);

我想知道在 mysqli 中使用准备好的语句时如何正确检查错误。是否有充分的理由手动检查该函数的返回值,如手册中所示?

【问题讨论】:

【参考方案1】:

是否有充分的理由手动检查它的返回值 功能如手册中所述?

不,没有。

Mysqli 可以自动检查错误,您只需要求它这样做。 配置mysqli每次出错时抛出异常,再也不用手动检查任何mysqli函数的错误了!

因此,在mysqli_connect()之前添加以下行

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

仅此而已!

请注意,您必须以正确的方式处理可能出现的错误。你可以在我的文章PHP error reporting

【讨论】:

以上是关于调用“mysqli_stmt_prepare”时是不是应该手动检查错误? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

abstract的方法是否可同时是static,是否可同时是native,是否可同时是synchronized?

转载:abstract的方法是否可同时是static,是否可同时是native,是否可同时是synchronized?

delphi7中调用了fortran编写的dll,之前用XP系统时是可以运行出结果的,但是现在换到win7了,不能用了。

虚拟机里面显示cpu时是QEMU Virtual,可以让它自己显示HV的cpu吗

RunTime的一些用法

Linux下C/C++动态库在运行时是怎样加载进来的