【问题标题】:Executing Multiple or Three Queries at Once一次执行多个或三个查询
【发布时间】:2016-01-17 08:50:03
【问题描述】:

我目前正在创建一个在线预订系统。

如何一次执行多个查询?

我已经在使用 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' "; ?>

【问题讨论】:

  • 您的第二个查询没有结束分号 - ; -> ... AND parent = '$ye'; ";

标签: php multi-query


【解决方案1】:

需要在每条语句后加分号:

<?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' ;"; 

【讨论】:

【解决方案2】:

如果您的数据库支持,我建议您单独运行查询并将它们包装到单个事务中。

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

我还建议您使用带参数的预处理语句,而不是将值直接包含在查询字符串中。

【讨论】:

    【解决方案3】:

    你可以使用 PHP mysqli_multi_query-function。

    $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)) {
    
    }
    

    【讨论】:

      猜你喜欢
      • 2011-10-07
      • 1970-01-01
      • 2018-05-24
      • 2019-03-25
      • 2014-01-28
      • 1970-01-01
      • 2021-07-28
      • 2023-04-06
      • 1970-01-01
      相关资源
      最近更新 更多