Mysql
 sql >> Base de données >  >> RDS >> Mysql

Inserts multiples avec PDO

Plusieurs choses :

  1. Supprimez la deuxième instruction de préparation dans for boucle
  2. Ajouter des paramètres liés dans le VALUES() de l'instruction sql
  3. Indexer les $images tableau avec for itérateur de boucle ou utilisez foreach

Voir for ajusté boucle :

$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();
} 

Alternativement avec foreach boucle (en supposant un tableau à une dimension) :

$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();
}