The_DemoCorgin
The_DemoCorgin

Reputation: 744

MySqli Multi_Query only executing first statement

I am trying to run a series of insert statements in a for loop using multi-query. The for loop executes properly and the first insert works correctly, but none of the other insert statements are running. No error messages are getting printed, but the code that's meant to print results isn't displaying anything either. Here is my code:

<?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();
?>

Any ideas where the code may be failing? I tried hard coding in values instead of using the variables in the inserts and still the same problem.

Upvotes: 0

Views: 170

Answers (1)

Kyhle Ohlinger
Kyhle Ohlinger

Reputation: 172

In the values: 

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

you seem to be missing a comma after $p."' for all the following lines,

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

Hopefully that helps

Upvotes: 1

Related Questions