Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mehrere Inserts mit PDO

Mehrere Dinge:

  1. Entfernen Sie die zweite Prepare-Anweisung innerhalb von for Schleife
  2. Gebundene Parameter in VALUES() hinzufügen der SQL-Anweisung
  3. Indizieren Sie die $images Array mit for Schleifeniterator oder verwenden Sie foreach

Siehe angepasster for Schleife:

$stmt = $this->db->prepare("INSERT INTO images (category_id, dir_image) 
                            VALUES (:category_id, :dir_image)");

$stmt->bindParam(":category_id" ,$lastId); 
$stmt->bindParam(":dir_image", $image);
for ($i = 0; $i < count($images); $i++){
    $image = $images[$i];
    $stmt->execute();
} 

Alternativ mit foreach Schleife (unter der Annahme eines eindimensionalen Arrays) :

$stmt = $this->db->prepare("INSERT INTO images (category_id, dir_image) 
                            VALUES (:category_id, :dir_image)");

$stmt->bindParam(":category_id", $lastId); 
$stmt->bindParam(":dir_image", $item);
foreach ($images as $item){
    $stmt->execute();
}