首页 > 后端开发 > php教程 > 如何解决'严格标准:mysqli_next_result() 与 mysqli_multi_query 错误”?

如何解决'严格标准:mysqli_next_result() 与 mysqli_multi_query 错误”?

Patricia Arquette
发布: 2024-12-24 05:41:17
原创
661 人浏览过

How to Resolve

严格标准:解决“mysqli_next_result() error with mysqli_multi_query”

问题:

使用 mysqli_multi_query 时,用户可能会遇到以下问题:遇到“严格标准”相关错误到 mysqli_next_result()。此错误表示没有要处理的下一个结果集。

初始响应:

一个响应尝试通过修改 $querystring 来纠正问题,但没有解决严格标准错误的根本原因。另一位回复建议将循环结构从“DO WHILE”更改为“WHILE”,这是不必要的。

实际解决方案:

要解决该错误,请修改代码如下:

do {
    if ($result = mysqli_store_result($db)) {
        // Process result set
    }
} while (mysqli_more_results($db) && mysqli_next_result($db));
登录后复制

这确保只有当有更多结果集需要处理时才会满足循环的条件,从而防止错误。

其他注意事项:

  • 在提供的示例中,执行 INSERT 查询,但不会生成结果集。因此,在这种情况下循环将不会执行。考虑使用 mysqli_affected_rows() 来检索受影响的行数。
  • 对于完整的解决方案,建议包括错误处理以在发生错误时显示错误。

增强型片段:

if (mysqli_multi_query($db, $querystring)) {
    do {
        if ($result = mysqli_store_result($db)) {
            // Process result set
            mysqli_free_result($result);
        } else if (mysqli_error($db)) {
            echo "Error: " . mysqli_error($db);
            break;
        }
    } while (mysqli_more_results($db) && mysqli_next_result($db));
}
登录后复制

结论:

错误“严格标准:mysqli_next_result():没有下一个结果集”通过使用 mysqli_more_results 解决() 检查是否存在其他结果集。增强的代码片段处理 mysqli_multi_query 和 mysqli_store_result 操作的正面和负面结果。

以上是如何解决'严格标准:mysqli_next_result() 与 mysqli_multi_query 错误”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板