我試圖使用mysqli_multi_query
函數將多行插入到同一個表中,但它只執行第一個查詢。我已經嘗試將值添加到由逗號分隔的第一個查詢的末尾,但似乎沒有任何效果。有什麼建議麼?php mysqli_multi_query()在第一個查詢後停止插入
我已經切換到準備好的語句,但仍然只插入第一個結果。我錯過了什麼嗎?
$DBConnect = mysqli_connect("localhost", "root", "", "getpressed");
if ($DBConnect->connect_error) {
die("Connection failed: " . $DBConnect->connect_error);
}
$stmt = $DBConnect->prepare("INSERT INTO orderdetails (orderID, productID, quantity) VALUES (?, ?, ?)");
$stmt->bind_param("iii", $orderID, $productID, $quantity);
$orderID = $orderID;
$productID = 1;
$quantity = $sportShirtQuantity;
$stmt->execute();
$orderID = $orderID;
$productID = 2;
$quantity = $sportCoatQuantity;
$stmt->execute();
echo "New records created successfully";
$stmt->close();
$DBConnect->close();
請**,請勿**使用此功能。這本質上是危險的。使用帶有佔位符值和['bind_param']的[prepared statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)(http://php.net/manual/en/ mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢中。你可以將它作爲一個帶有兩組值的單獨的'INSERT',或者一個準備好的'INSERT',用不同的綁定執行兩次。無論哪種方式都比你在這裏顯着更好。 – tadman
在迄今爲止提供的所有愚蠢的答案中,只有正確的方式是@tadman寫的。它速度更快,很簡單,它抵抗'max_allowed_packet',它很安全。無論有人會告訴你,任何其他解決辦法都是馬糞與預先準備的陳述相比較。 –