Insertion d'un tableau dans une instruction préparée MySQL avec PHP et PDO
Lorsque vous tentez d'insérer un tableau de valeurs dans une table MySQL à l'aide d'un déclaration préparée, il est important d’envisager l’approche appropriée pour l’efficacité et la sécurité. Cet article explique comment construire une instruction SQL dynamique capable de gérer un tableau de valeurs.
Traditionnellement, une boucle peut être utilisée pour exécuter plusieurs instructions préparées, mais la création d'une seule instruction SQL dynamique est généralement préférable. Pour créer une telle instruction, vous pouvez utiliser l'approche décrite ci-dessous :
Définir la requête SQL de base :
$sql = 'INSERT INTO table (memberID, programID) VALUES ';
Parcourez le tableau :
$insertQuery = array(); $insertData = array(); foreach ($data as $row) { $insertQuery[] = '(?, ?)'; $insertData[] = $memberid; $insertData[] = $row; }
Combinez les parties de la requête :
if (!empty($insertQuery)) { $sql .= implode(', ', $insertQuery); }
Préparer et exécuter l'instruction :
$stmt = $db->prepare($sql); $stmt->execute($insertData);
Cette approche garantit que toutes les valeurs sont insérées en une seule fois, tout en maintenant la sécurité de la préparation déclarations en utilisant des espaces réservés (?). C'est plus efficace que l'exécution de plusieurs instructions et minimise les vulnérabilités potentielles d'injection SQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!