首页 >后端开发 >php教程 >如何在 PHP 中同时执行多个 MySQLi 查询?

如何在 PHP 中同时执行多个 MySQLi 查询?

Linda Hamilton
Linda Hamilton原创
2024-12-08 02:41:14400浏览

How Can I Execute Multiple MySQLi Queries Simultaneously in PHP?

多个 mysqli 查询:了解 mysqli_multi_query()

使用 MySQLi,在单个请求中执行多个查询并不简单。尝试执行单独的 mysqli_query() 调用将导致仅执行第一个查询。为了克服这一限制,mysqli_multi_query() 提供了一种一次性执行多个 SQL 语句的解决方案。

示例实现:

考虑以下场景:

mysqli_query($dblink, "INSERT INTO images ...");
mysqli_query($dblink, "INSERT INTO images_history ...");

要同时执行两个查询,请使用mysqli_multi_query():

$mysqli = new mysqli(...);
$query = "INSERT INTO images ...";
$query .= "INSERT INTO images_history ...";

$result = mysqli_multi_query($mysqli, $query);

if ($result) {
    while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli)) {
        if (($result = mysqli_store_result($mysqli)) === false && mysqli_error($mysqli) != '') {
            echo "Query failed: " . mysqli_error($mysqli);
        }
    }
} else {
    echo "First query failed..." . mysqli_error($mysqli);
}

关键注意事项:

  • mysqli_multi_query() 需要一个包含所有用分号 (;) 分隔的查询的字符串。
  • mysqli_store_result() 必须用于检索每个查询的结果。由于 INSERT 查询不返回结果集,请检查 mysqli_error() 是否有空字符串以确认插入是否成功。
  • 这种方法是安全的,因为它可以防止执行多个 mysqli_query() 调用时出现 SQL 注入。

额外资源:

  • [mysqli_multi_query](https://www.php.net/manual/en/mysqli.multi-query.php)
  • [mysqli_more_results]( https://www.php.net/manual/en/mysqli.more-results .php)
  • [mysqli_next_result](https://www.php.net/manual/en/mysqli.next-result.php)
  • [mysqli_store_result](https://www .php.net/manual/en/mysqli.store-result.php)

以上是如何在 PHP 中同时执行多个 MySQLi 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

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