I am trying to insert multiple rows at once to my db, I posted a question here the other day see here. Regarding my insert query only insert one row into the db, even if it was
Your SQL is generated incorrectly:
INSERT INTO ord_dets(Order_ID,custmer_ip,Resturant_ID,Resturant_name,City_name,
Product_Id,Product_Name,Product_Price,item_sub)
VALUES (...,...,....)(...,...,....)(...,...,....)(...,...,....)(...,...,....)
This is how it looks like. Fix it ad there will be no error
Solution here is to add commas betweeen values:
VALUES (...,...,....),(...,...,....),(...,...,....),(...,...,....),(...,...,....)
UPD: Actually I can't see where you add $query_parts
to your query string
UPD2: this is how it should look to avoid sql injections:
$_query = "INSERT INTO ord_dets(Order_ID,custmer_ip,Resturant_ID,Resturant_name,City_name, Product_Id,Product_Name,Product_Price,item_sub) VALUES (?,?,?,?,?,?,?,?,?)";
$stmt = $dbc->prepare($_query);
for($x=0;$xexecute([$OI[$x] , $ip[$x], $_SESSION['rest_id'][$x] ,
$rest_name[$x] , $City_name[$x] , $Product_Id[$x] ,
$product_name[$x] , $prod_price[$x] ,$item_sub[$x]])) )
{
insertError = "There was an error inserting data: " . $query_run->error;
print "affected rows:" . $query_run->affected_rows;
}
}