多个 mysqli 查询:同时运行 INSERT 语句
原始问题:
尝试执行连续使用 mysqli_query() 的两个 INSERT 语句会导致第二次查询失败。此问题源于 MySQL 的安全措施,该措施防止在单个调用中执行多个查询。
解决方案:mysqli_multi_query()
在单个调用中执行多个查询调用时,需要使用 mysqli_multi_query() function:
$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');"; $result = mysqli_multi_query($mysqli, $query);
处理查询结果
执行 mysqli_multi_query() 返回一个布尔值。然而,使用 mysqli_store_result() 手动检索每个查询的结果并使用 mysqli_more_results() 和 mysqli_next_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); } }
mysqli_multi_query() 的优点
其他注意事项
以上是如何使用mysqli在MySQL中同时执行多个INSERT语句?的详细内容。更多信息请关注PHP中文网其他相关文章!