Выполнение нескольких или трех запросов одновременно

В настоящее время я создаю систему онлайн-бронирования.

Как я могу выполнить несколько запросов одновременно?

Я уже использую mysqli_muti_query. У меня есть три запроса для выполнения.

<?php
$sql = "INSERT INTO db (name,picuploc,lname,pnumber,age,email,address,city,zipcode,ticketid,pickuptime,dropofftime,dropoffloc,vehicle,plateno,totalprice,date_registered) VALUES ('$first','$pickuploc','$lname','$pnumber','$age','$email','$address','$city','$zip','$ticket','$pickup','$dropoff','$dropoffloc','$car','$plate','$all', NOW());";

$sql .= "UPDATE vehicles set quantity = quantity - $age WHERE vehicle = '$car' AND parent = '$ye' ";

$sql .= "UPDATE vehicles set status = '$un'  WHERE plateno = '$plate' "; ?>

0

Решение

Вам нужно добавить точку с запятой после каждого оператора:

<?php
$sql = "INSERT INTO db (name,picuploc,lname,pnumber,age,email,address,city,zipcode,ticketid,pickuptime,dropofftime,dropoffloc,vehicle,plateno,totalprice,date_registered) VALUES ('$first','$pickuploc','$lname','$pnumber','$age','$email','$address','$city','$zip','$ticket','$pickup','$dropoff','$dropoffloc','$car','$plate','$all', NOW());";

$sql .= "UPDATE vehicles set quantity = quantity - $age WHERE vehicle = '$car' AND parent = '$ye' ;";

$sql .= "UPDATE vehicles set status = '$un'  WHERE plateno = '$plate' ;";
0

Другие решения

Если это поддерживается вашей базой данных, я бы посоветовал вам запускать ваши запросы отдельно и объединять их в одну транзакцию.

$conn->begin_transaction();
$sql = "INSERT INTO db (name,picuploc,lname,pnumber,age,email,address,city,zipcode,ticketid,pickuptime,dropofftime,dropoffloc,vehicle,plateno,totalprice,date_registered) VALUES ('$first','$pickuploc','$lname','$pnumber','$age','$email','$address','$city','$zip','$ticket','$pickup','$dropoff','$dropoffloc','$car','$plate','$all', NOW());";
$conn->query($sql);

$sql = "UPDATE vehicles set quantity = quantity - $age WHERE vehicle = '$car' AND parent = '$ye';";
$conn->query($sql);

$sql = "UPDATE vehicles set status = '$un'  WHERE plateno = '$plate';";
$conn->query($sql);

$conn->commit();

Я бы также предложил вам использовать подготовленные операторы с параметрами, а не включать значения непосредственно в строку запроса.

0

Вы можете использовать PHP mysqli_multi_query-функция.

$sql = "INSERT INTO db (name,picuploc,lname,pnumber,age,email,address,city,zipcode,ticketid,pickuptime,dropofftime,dropoffloc,vehicle,plateno,totalprice,date_registered) VALUES ('$first','$pickuploc','$lname','$pnumber','$age','$email','$address','$city','$zip','$ticket','$pickup','$dropoff','$dropoffloc','$car','$plate','$all', NOW());";

$sql .= "UPDATE vehicles set quantity = quantity - $age WHERE vehicle = '$car' AND parent = '$ye' ;";

$sql .= "UPDATE vehicles set status = '$un'  WHERE plateno = '$plate' ;";

/* execute multi query */
if ($mysqli->multi_query($query)) {

}
0
По вопросам рекламы [email protected]