从多个插入中获取最后一个 ID
Get last id from multiple insert
我有这个多记录插入。我需要从 product
获取最后一个 ID 并将 loan
table 插入到 table import
。我该怎么做?
这是我的代码:
$sql = "INSERT INTO `product` (`product_id`, `barcode`, `delete`, `id_list_name`) VALUES (NULL, '".$barcode."', '0', '".$listnameid."');
INSERT INTO `loan` (`loan_id`, `date`, `Quantity`, `delete`, `id_user`) VALUES (NULL, '".date("Y-m-d")."', '1', '0', '".$userid."');
INSERT INTO `import` (`import_id`, `id_product`, `date`, `delete`, `date delete`, `id_user`, `id_loan`) VALUES (NULL, '4', '".date("Y-m-d")."', '0', '', '".$userid."', '"4"');
";
mysqli_query($conn, $sql);
- 没有 "multiple insert" 这样的东西。每个插入必须单独执行。特别是如果您需要每个查询的插入 ID。
- 所有 插入查询必须使用准备好的语句 执行。
这是您正确编写的代码
$sql = "INSERT INTO `product` (`product_id`, `barcode`, `delete`, `id_list_name`) VALUES (NULL, ?, '0', ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ss", $barcode,$listnameid);
$product_id = $conn->insert_id;
$sql = "INSERT INTO `loan` (`loan_id`, `date`, `Quantity`, `delete`, `id_user`) VALUES (NULL, CURDATE(), '1', '0', ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $userid);
$loan_id = $conn->insert_id;
$sql = "INSERT INTO `import` (`import_id`, `id_product`, `date`, `delete`, `date delete`, `id_user`, `id_loan`) VALUES (NULL, ?, CURDATE(), '0', '', ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("sss", $product_id, $userid, $loan_id;);
$import_id = $conn->insert_id;
我有这个多记录插入。我需要从 product
获取最后一个 ID 并将 loan
table 插入到 table import
。我该怎么做?
这是我的代码:
$sql = "INSERT INTO `product` (`product_id`, `barcode`, `delete`, `id_list_name`) VALUES (NULL, '".$barcode."', '0', '".$listnameid."');
INSERT INTO `loan` (`loan_id`, `date`, `Quantity`, `delete`, `id_user`) VALUES (NULL, '".date("Y-m-d")."', '1', '0', '".$userid."');
INSERT INTO `import` (`import_id`, `id_product`, `date`, `delete`, `date delete`, `id_user`, `id_loan`) VALUES (NULL, '4', '".date("Y-m-d")."', '0', '', '".$userid."', '"4"');
";
mysqli_query($conn, $sql);
- 没有 "multiple insert" 这样的东西。每个插入必须单独执行。特别是如果您需要每个查询的插入 ID。
- 所有 插入查询必须使用准备好的语句 执行。
这是您正确编写的代码
$sql = "INSERT INTO `product` (`product_id`, `barcode`, `delete`, `id_list_name`) VALUES (NULL, ?, '0', ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ss", $barcode,$listnameid);
$product_id = $conn->insert_id;
$sql = "INSERT INTO `loan` (`loan_id`, `date`, `Quantity`, `delete`, `id_user`) VALUES (NULL, CURDATE(), '1', '0', ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $userid);
$loan_id = $conn->insert_id;
$sql = "INSERT INTO `import` (`import_id`, `id_product`, `date`, `delete`, `date delete`, `id_user`, `id_loan`) VALUES (NULL, ?, CURDATE(), '0', '', ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("sss", $product_id, $userid, $loan_id;);
$import_id = $conn->insert_id;