1 Pluspunkt 0 Minuspunkte

Wenn ich einen Query habe der mehrere Einträge in eine Datenbanb speichert  

INSERT INTO table_A (value1, value2) VALUES (1,2), (3,4), (5,6)  

Wie kann ich das mit Prepared Statements machen?

von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Angenommen, du verwendest PHP und MySQLi für die Datenbankverbindung.

$dataToInsert = [
    [1, 2],
    [3, 4],
    [5, 6]
];

$stmt = $conn->prepare("INSERT INTO tableA (value1, value2) VALUES (?, ?)");

$stmt->bind_param('ii', $value1, $value2);

foreach ($dataToInsert as $data) {
    list($value1, $value2) = $data;
    $stmt->execute();
}

In diesem Beispiel werden die Werte im $dataToInsert Array entsprechend den Parametern im Prepared Statement platziert. Die execute() Methode führt das Prepared Statement für jede Zeile im $dataToInsert-Array in einer Schleife aus.

von  
0 Pluspunkte 0 Minuspunkte

Du kannst die Daten in einem Array speichern und über das Array iterieren.

$sql = "INSERT INTO table_A (value1, value2) VALUES (?, ?)";

$values = array(
    array(1, 2),
    array(3, 4),
    array(5, 6)
);

$stmt = $conn->prepare($sql);

foreach ($values as $entry) {
    $stmt->bind_param("ii", $entry[0], $entry[1]);
    $stmt->execute();
}

von