我想插入一些類似購買細節。我創建了兩張表,購買& purchase_items。所以每個購買記錄可以有多個項目。 我可以將一條記錄插入到購買表中,但我需要的是將行添加到購買時添加到列表中的項目。 代碼如下PHP,發佈未知文本字段值,發佈到PHP文件,並插入數據庫作爲行存在
$stmt = $conn->prepare("INSERT INTO `purchase` (`purchaseRef`, `vendorName`, `date`) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $reference, $vendorName, $date);
$reference = $_POST["txtRef"];
$vendorName = $_POST["vendorName"];
$date = date("Y-m-d");
if($stmt->execute()) {
$lastID = $stmt->insert_id;
// i want to add unlimited items, i wrote as follows
foreach ($_POST as $key => $value) {
$stmt2 = $conn->prepare("INSERT INTO `purchase_items` (`prchseID`, `ctgryNo`, `prdctID`, `quantity`, `price`) VALUES (?, ?, ?, ?, ?)");
$stmt2->bind_param("sssss", $lastID, $ctgryID, $prdID, $qnty, $price);
$param_name = "ctgryID";
if(substr($key, 0, strlen($param_name)) == $param_name) {
ctgryID=$value;
}
$param_name2 = "prdID";
if(substr($key, 0, strlen($param_name2)) == $param_name2) {
$prdID=$value;
}
$param_name3 = "qnty";
if(substr($key, 0, strlen($param_name3)) == $param_name3) {
$qnty=$value;
}
$param_name4 = "price";
if(substr($key, 0, strlen($param_name4)) == $param_name4) {
$price=$value;
}
if(!$stmt2->execute()) {
echo 'error: '.$stmt2->error; exit();
}
}
}
請幫
你在這裏有什麼問題? –
您不需要多次執行'prepare()'。節省開銷並將其移到循環之外 – Machavity
這是一個問答網站。如果你實際上沒有提出問題,那麼你很難得到答案。 –