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)を使用してクエリにユーザデータを追加します。これは、2つの値のセットを持つ単一のINSERTとして、または異なるバインディングで2回実行される 'INSERT'を準備したものとして行うことができます。どちらの方法でも、あなたがここにあるよりもはるかに優れています。 – tadman
これまでに提供されているすべてのダムの回答のうち、唯一のものは、@tadmanが書いたものです。それは速いです、それは簡単です、それは 'max_allowed_packet'に抵抗です、それは安全です。誰かがあなたに話すかもしれないどんな他の解決策も、準備された声明と比較して馬糞です。 –