Insertion de plusieurs lignes avec des instructions préparées PDO
L'insertion de plusieurs lignes dans une base de données à l'aide d'une seule instruction préparée est non seulement possible, mais également recommandée pour son efficacité et sa sécurité.
Approche avec une requête à insertion unique
La première méthode consiste à utiliser une seule requête INSERT avec plusieurs valeurs :
INSERT INTO Table (col1, col2, col3) VALUES ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi') -- and so on...
Pour exécuter cette requête à l'aide de PDO, vous pouvez suivre ces étapes :
$query = "INSERT INTO Table (col1, col2, col3) VALUES (?, ?, ?), (?, ?, ?), (?, ?, ?) "; $params = array('abc', 'def', 'ghi', 'abc', 'def', 'ghi', 'abc', 'def', 'ghi'); $stmt = DB::getInstance()->prepare($query); $stmt->execute($params);
Approche avec des requêtes d'insertion individuelles
Si le nombre de lignes à insérer est trop grand, vous devrez peut-être exécuter des requêtes d'insertion individuelles :
$query = "INSERT INTO Table (col1, col2, col3) VALUES (".implode(',', $args).")"; $stmt = $pdo->prepare($query); foreach ($rows as $row) { $stmt->execute($row); }
Cette approche garantit que chaque ligne est insérée séparément, minimisant ainsi le risque de problèmes lors de l'insertion.
Conclusion
Que vous utilisiez une seule insertion requête avec plusieurs valeurs ou requêtes d'insertion individuelles, les instructions préparées par PDO fournissent des méthodes efficaces et sécurisées pour insérer plusieurs lignes dans une base de données. Le choix de la bonne approche dépend des exigences spécifiques de l'application et de la base de données.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3