为什么我不能同时运行多个 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_multi_query(),您可以在一次数据库调用中高效地执行多个查询,避免第二次查询失败的问题。
以上是如何同时执行多个MySQL查询?的详细内容。更多信息请关注PHP中文网其他相关文章!