MySqli Multi_Query只执行第一个语句

时间:2015-07-15 17:25:59

标签: php mysql

我正在尝试使用多查询在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();
?>

代码可能失败的任何想法?我尝试在值中进行硬编码,而不是使用插入中的变量,但仍然存在同样的问题。

1 个答案:

答案 0 :(得分:1)

In the values: 

    values (4, '".$i."', '".$p."' 81, 3);

你似乎在$ p之后错过了一个逗号。&#34;&#39;对于以下所有行,

i.e.
    values (4, '".$i."', '".$p."', 81, 3);

希望有帮助