Maison > Article > base de données > Quelle approche est la meilleure pour insérer plusieurs lignes dans PHP PDO MySQL ?
Insertion de plusieurs lignes dans PHP PDO MySQL : comparaison de code et optimisation
Lorsque vous devez insérer plusieurs lignes dans une table MySQL à l'aide PHP PDO, les développeurs peuvent rencontrer deux approches principales.
Approche 1 :
$stmt = $db->prepare($sql); foreach($rows as $row){ $stmt->execute($row); }
Approche 2 :
$sql = "insert into `table_name` (col1, col2, col3) values "; $sql .= //not sure the best way to concatenate all the values, use implode? $db->prepare($sql)->execute();
Performances et sécurité du code :
Les deux approches sont viables, mais elles diffèrent en termes de vitesse d'exécution et de sécurité.
Approche 1 :
Approche 2 :
Opter pour le meilleure approche :
L'approche optimale dépend de la taille de l'ensemble de données à insérer. Pour les petits ensembles de données, l’une ou l’autre méthode convient. Pour les grands ensembles de données où la vitesse est cruciale, l'approche 2 avec des requêtes paramétrées est recommandée.
Optimisation supplémentaire :
L'insertion par lots dans l'approche 2 peut être optimisée davantage en concaténant les espaces réservés avant d'exécuter la requête :
$sqlArray = array(); foreach($rows as $row){ $sqlArray[] = '(' . implode(',', array_fill(0, count($row), '?')) . ')'; } $sql .= implode(',', $sqlArray);
Cela réduit considérablement le nombre d'espaces réservés qui doivent être liés avant l'exécution, améliorant ainsi les performances.
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!