我正在尝试使用多查询在 for 循环中运行一系列插入语句。 for 循环正确执行,第一个插入工作正常,但其他插入语句都没有运行。没有打印任何错误消息,但是用于打印结果的代码也没有显示任何内容。这是我的代码:
<?php
$conn = new mysqli($server, $user, $pass, $db);
if($conn->connect_error){
die("Connection failed: " . $conn->connect_error);
}
for($i=10; $i<242; $i++){
$p = ($i*9-63);
$sql2= "insert into table(type_id, set_id, group_id, id, sort_order) values (4, '".$i."', '".$p."', 190, 1); ";
$sql2.= "insert into table(type_id, set_id, group_id, id, sort_order) values (4, '".$i."', '".$p."' 81, 3); ";
$sql2.= "insert into table(type_id, set_id, group_id, id, sort_order) values (4, '".$i."', '".$p."' 177, 2); ";
$sql2.= "insert into table(type_id, set_id, group_id, id, sort_order) values (4, '".$i."', '".$p."' 175, 4); ";
$sql2.= "insert into table(type_id, set_id, group_id, id, sort_order) values (4, '".$i."', '".$p."' 202, 5); ";
$sql2.= "insert into table(type_id, set_id, group_id, id, sort_order) values (4, '".$i."', '".$p."' 92, 6); ";
$sql2.= "insert into table(type_id, set_id, group_id, id, sort_order) values (4, '".$i."', '".$p."' 120, 7); ";
$sql2.= "insert into table(type_id, set_id, group_id, id, sort_order) values (4, '".$i."', '".$p."' 209, 8); ";
$sql2.= "insert into table(type_id, set_id, group_id, id, sort_order) values (4, '".$i."', '".$p."' 213, 9); ";
$sql2.= "insert into table(type_id, set_id, group_id, id, sort_order) values (4, '".$i."', '".$p."' 81, 3); ";
if ($conn->multi_query($sql2)) {
do {
/* store first result set */
if ($result = $conn->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->free();
}
/* print divider */
if ($conn->more_results()) {
printf("-----------------\n");
}
} while ($conn->next_result());
}
}
$conn->close();
?>
有什么想法可能导致代码失败吗?我尝试在值中进行硬编码,而不是使用插入中的变量,但仍然存在同样的问题。
最佳答案
In the values:
values (4, '".$i."', '".$p."' 81, 3);
您似乎在 $p."' 之后缺少一个逗号,对于以下所有行,
i.e.
values (4, '".$i."', '".$p."', 81, 3);
希望有帮助
关于php - MySqli Multi_Query 仅执行第一条语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31437093/