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

如何同时执行多个MySQL查询?

Linda Hamilton
Linda Hamilton原创
2024-12-24 00:10:20523浏览

How Can I Execute Multiple MySQL Queries Simultaneously?

为什么我不能同时运行多个 mysqli 查询?

正如您所注意到的,尝试使用连续的语句执行两个单独的 MySQL 查询mysqli_query() 调用将导致第二个查询失败。这种行为是由于安全措施造成的。

mysqli_multi_query() 来救援

幸运的是,mysqli 提供了 mysqli_multi_query() 函数,专门用于在单个查询中执行多个查询数据库调用。

示例代码

以下是如何使用 mysqli_multi_query() 的示例:

$mysqli = new mysqli($host, $user, $password, $database);

// Create query string with multiple queries separated by ;
$query  = "INSERT INTO images (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName');";
$query .= "INSERT INTO images_history (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name, day, month, year) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName', '$day', '$month', '$year');";

// Execute query using mysqli_multi_query()
$result = mysqli_multi_query($mysqli, $query);

// Retrieve results
if ($result) {
    do {
        $result = mysqli_store_result($mysqli);
    } while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli));
} else {
    echo "First query failed: " . mysqli_error($mysqli);
}

其他注意事项:

  • mysqli_store_result( ) 对于没有结果集的查询将返回 FALSE,例如 INSERT查询。检查mysqli_error()以确认执行成功。
  • 注意“;”的使用作为查询之间的分隔符。

通过使用 mysqli_multi_query(),您可以在一次数据库调用中高效地执行多个查询,避免第二次查询失败的问题。

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

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