php - MySqli Multi_Query 仅执行第一条语句

标签 php mysql

我正在尝试使用多查询在 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/

相关文章:

php - 根据搜索值的部分匹配过滤多维数组

php - Laravel 全局设置模型

php - 从数组中找到值的总和

php - 如何检索存储在表中的sql查询并为表中的所有查询创建动态php页面

javascript - 根据用户选择显示表单 - ajax

PHP MySQLi 多查询准备语句

php - 如何正确书写MySQL别名?

python - 如何将列表中的数据插入MySql数据库?

php - 通过基于重定向的身份验证收到的 token 是否预期是长期存在的 token

PHP UPDATE 充当 INSERT