php - 一个 PHP 脚本带有两个 PDO 查询?

标签 php mysql pdo crud

我最近开始使用 PDO 重建客户的出租车预订系统。

我有一个名为 create_booking.php 的脚本,它最初将预订详细信息插入 MySQL 数据库中的预订表中。插入客户详细信息后,它会检索lastinsertID 以获取预订引用。然后,它在作业表中创建一个作业并引用预订引用来关联作业/预订。

第一个插入工作正常,但第二个插入则不然。有什么想法吗?

    if (isset($_POST['customer_title'])) {

  include('../assets/db_connection.php');

  $create_booking = $db->prepare("INSERT INTO bookings(customer_name, billing_address,    contact_tel, contact_mob, contact_email, party_pax, party_cases, booking_notes, price, booking_agent, booking_date, booking_status, authorised)
                                      VALUES(:customer_name, :billing_address, :contact_tel, :contact_mob, :contact_email, :party_pax, :party_cases, :booking_notes, :price, :booking_agent, :booking_date, :booking_status, :authorised );");
  $create_booking->execute(array(
      ":customer_name"       =>   $customer_title  . ' ' .   $customer_first_name  . ' '  .   $customer_last_name,
      ":billing_address"     =>   $billing_address,
      ":contact_tel"         =>   $customer_tel,
      ":contact_mob"         =>   $customer_mobile,
      ":contact_email"       =>   $customer_email,
      ":party_pax"           =>   $passengers,
      ":party_cases"         =>   $cases,
      ":booking_notes"       =>   $booking_notes,
      ":price"               =>   $price,
      ":booking_agent"       =>   $booking_agent,
      ":booking_date"        =>   $booking_date,
      ":booking_status"      =>   $booking_status,
      ":authorised"          =>   $authorised    
    ));

  $booking_ref = $db->lastInsertId('booking_ref'); // Takes Booking Ref generated in $create_booking

  $create_job    = $db->prepare("INSERT INTO jobs(booking_ref, pickup_date, pickup_time, pickup_address, destination_address, return, scheduled)
                                (:booking_ref, :pickup_date, :pickup_time, :pickup_address, :destination_address, :return, :scheduled )");

  $create_job->execute(array(

      ":booking_ref"          =>  $booking_ref,
      ":pickup_date"          =>  $pickup_date,
      ":pickup_time"          =>  $pickup_time,
      ":pickup_address"       =>  $pickup_address,
      ":destination_address"  =>  $pickup_destination,
      ":return"               =>  "N",
      ":scheduled"            =>  "N"

    ));

}

最佳答案

您的第二个 SQL 查询缺少 VALUES

INSERT INTO() ... VALUES()

$create_job = $db->prepare("INSERT INTO jobs(booking_ref、pickup_date、pickup_time、pickup_address、destination_address、return、scheduled) 值(:booking_ref、:pickup_date、:pickup_time、:pickup_address、:destination_address、:return、:scheduled)”);

关于php - 一个 PHP 脚本带有两个 PDO 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14426710/

相关文章:

php - 内部服务器错误 Codeigniter HMVC

php - 不同时间的双 AJAX 请求

php - MySql 命令 mysqldump 没有执行?

mysql - CodeIgniter - 从表中检索除最后一个之外的所有帖子

PHP PDO SQLITE - 连接

php - Memcache 不会刷新或清除内存

PHP用户输入数据问题?

mysql - 时间表-数据库设计

php - PDO - 如果这些查询中的任何一个返回空结果,则捕获

PHP - 当只调用一次execute()时,PDO查询执行两次