获取刚刚插入的数据库中的行的id

时间:2017-06-11 12:27:44

标签: php mysql

我想将购物车中每件商品的ID插入数据库,并将此发票行与刚刚在同一案例中创建的发票结合起来。 目前,如果我按下按钮,它会向数据库添加一张新发票,之后它会添加购物车中的每一件产品,但现在我需要将第二个查询中的1替换为刚刚创建的发票ID。我怎样才能让它发挥作用?

  case "apply":
  $curdate = date('Y-m-d');
  // new invoice
  $sql = "INSERT INTO invoice (user_user_id, dates) VALUES ('1', '$curdate')";
  $result = mysqli_query($con, $sql);
  // for each item in cart insert into invoiceline
  foreach ($_SESSION["cart_item"] as $item){
    $car = $item["id"];
    $sql = "INSERT INTO invoice_line (car_car_id, invoice_invoice_number) VALUES ('$car', '1')";
    $result = mysqli_query($con, $sql);

  }
    unset($_SESSION["cart_item"]);
  break;
}
}

invoice_id不是主键,而是外键,表doenst有主键所以我不认为我可以使用mysqli_insert_id?

1 个答案:

答案 0 :(得分:1)

您可以使用:

$inserted_id = mysqli_insert_id($con);

或面向对象的风格:

$inserted_id = $con->insert_id;

$ inserted_id 将具有刚刚插入的行的值(应该在表中自动增加)。

因此,您的第二个查询将如下所示:

$sql = "INSERT INTO invoice_line (car_car_id, invoice_invoice_number) VALUES ('$car', '$inserted_id')";