可以使用mysqli_multi_query()。
例:
<?php$mysqli = new mysqli($host, $user, $password, $database);// create string of 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 - $result is false if the first query failed$result = mysqli_multi_query($mysqli, $query);if ($result) { do { // grab the result of the next query if (($result = mysqli_store_result($mysqli)) === false && mysqli_error($mysqli) != '') { echo "Query failed: " . mysqli_error($mysqli); } } while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli)); // while there are more results} else { echo "First query failed..." . mysqli_error($mysqli);}关键是如果要在单个调用中执行多个查询,则 必须
使用
mysqli_multi_query。出于安全原因,
mysqli_query将不执行多个查询以防止SQL注入。
还请记住的行为
mysqli_store_result。它返回
FALSE如果查询没有结果集(这
INSERT查询不),所以你还必须检查
mysqli_error地看到,它返回一个空字符串意味着
INSERT成功。



