0

現在、一度に複数の行を挿入しています。自動インクリメントに設定されている「agreement」テーブルに「id」列があります。これは、明らかに、挿入された行ごとに新しいIDを作成します。

同じIDですべての行を一度に挿入する方法はありますか?

if ($stmt = $mysqli->prepare("INSERT agreement (start, end, customer, manufacturer, item_number, item_description) VALUES (?, ?, ?, ?, ?, ?)")) {
    $stmt->bind_param("ssssss", $start, $end, $customer, $manufacturer, $number, $description);
    for ($i = 0; $i < count($_POST['item']); $i++) {
        $number = $_POST['item'][$i];
        $description = $_POST['description'][$i];
        $theid2 = $theid[$i];
        $stmt->execute();
    }
    $stmt->close();
}
// show an error if the query has an error
else {
    echo "ERROR: Could not prepare SQL statement 1.";
}


// redirect the user
}
$mysqli->error;
$mysqli->close();
4

1 に答える 1

0

これがオラクルの場合、答えは「はい」ですが、MySQLにはシーケンスがありません。これを行うには、レコードのセットに使用する一意のシーケンスのソースが必要です。最も簡単なのは、別のテーブルに挿入し、そこから自動インクリメントされたキーを取得してIDとして使用することです。

于 2013-03-15T23:58:02.930 に答える