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

标签 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 不是主键,而是外键,该表没有主键,所以我认为我不能使用 mysqli_insert_id?

最佳答案

您可以使用:

$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')";

关于php - 获取数据库中刚刚插入的行的id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44483850/

相关文章:

php - 从同一个表中获取值

javascript - PHP 中如何定义索引?

如果 mysql 字段完整则重定向的 PHP 代码

mysql - 改进 MySQL 对大表的搜索

php - 如何使用php和mysql显示最后n条插入的记录

c# - nodejs从mysql中获取数据并发送给Client

php - 在 codeigniter 中使用回调表单验证来比较日期

php - json_encode 数组中的自定义键

php - 为什么 PHP filesize() 函数不起作用?

php - 我需要按字母顺序对对象数据进行排序