从多个插入中获取最后一个 ID

我有这个多记录插入。我需要从表中获取最后一个 idproduct并将loan表插入到表中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);


白猪掌柜的
浏览 84回答 1
1回答

动漫人物

没有“多重插入”之类的东西。每个插入必须单独执行。特别是如果您需要从每个查询中插入 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;
打开App,查看更多内容
随时随地看视频慕课网APP