Spelmann
Erfahrenes Mitglied
Mein Versuch prepared Statements zu verwenden funktioniert nicht wegen falscher Anzahl von Variablen.
Fehlerausgabe zur Zeile 18:
Vereinfacht würde das ja so gehen:
Kann mir jemand beschreiben, wie ich mehrere Datensätze via Prepared Statements in meinem Beispiel verarbeiten kann?
PHP:
$pattern = "('name', 'size', 'gattung')";
$sep = ', ';
$rows = array();
foreach ( simplexml_load_file('./xml_sources/myXML.xml') as $elems ) {
$rowData = array(
'name' => (string)$elems->NAME,
'size' => (double)$elems->SIZE,
'gattung' => (string)$elems->GATTUNG
);
$rows[] = strtr($pattern, $rowData);
}
$daten = join($sep, $rows); // $daten ist ein String mit dem Inhalt: ('Shrek', '2.5', 'Oger'), ('Fiona', '1.75', 'Prinzessin'), ('Gestiefelter Kater', '0.9', 'Katze')
var_dump($daten);
$sql=$db_link->prepare('insert INTO tl_figur (NAME, SIZE, GATTUNG) VALUES (?, ?, ?)');
$sql->bind_param('sds', $daten);
$sql->execute();
Fehlerausgabe zur Zeile 18:
Code:
Warning: mysqli_stmt::bind_param():
Number of elements in type definition string
doesn't match number of bind variables
Vereinfacht würde das ja so gehen:
PHP:
INSERT INTO tl_figur (NAME, SIZE, GATTUNG) VALUES ( 'Shrek', '2.5', 'Oger'), ( 'Fiona', '1.75', 'Prinzessin'), ( 'Gestiefelter Kater', '0.9', 'Katze')
Kann mir jemand beschreiben, wie ich mehrere Datensätze via Prepared Statements in meinem Beispiel verarbeiten kann?