我正在尝试使用多查询在for循环中运行一系列insert语句。 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();
?>
代码可能失败的任何想法?我尝试在值中进行硬编码,而不是使用插入中的变量,但仍然存在同样的问题。
答案 0 :(得分:1)
In the values:
values (4, '".$i."', '".$p."' 81, 3);
你似乎在$ p之后错过了一个逗号。&#34;&#39;对于以下所有行,
i.e.
values (4, '".$i."', '".$p."', 81, 3);
希望有帮助