Maison >développement back-end >tutoriel php >Les instructions préparées par PDO peuvent-elles insérer efficacement plusieurs lignes dans une seule requête ?

Les instructions préparées par PDO peuvent-elles insérer efficacement plusieurs lignes dans une seule requête ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-30 14:56:10238parcourir

Can PDO Prepared Statements Efficiently Insert Multiple Rows in a Single Query?

Insertion de plusieurs lignes avec des instructions préparées PDO

Pour améliorer la sécurité avec PDO, les développeurs recherchent des méthodes pour insérer plusieurs lignes dans une seule requête en utilisant des instructions préparées. déclarations. Cet article explore la faisabilité et la mise en œuvre d'une telle solution.

L'insertion de plusieurs lignes dans une seule requête est plus rapide que les insertions classiques. Les instructions préparées utilisent des parties constantes explicitement écrites dans le code, offrant une sécurité à 100 %.

Pour implémenter cela, créez une partie VALUES avec une séquence d'espaces réservés pour une seule ligne. Déterminez le nombre de champs et de lignes pour répéter cette séquence en conséquence.

// VALUES part for a single row
$values = str_repeat('?,', count($data[0]) - 1) . '?';

// Construct the entire query
$sql = "INSERT INTO table (columnA, columnB) VALUES " .
    // Repeat the VALUES part for each row
    str_repeat("($values),", count($data) - 1) . "($values)";

$stmt = $db->prepare($sql);
// Execute with all values from $data
$stmt->execute(array_merge(...$data));

Cette approche est sécurisée car la requête contient des parties constantes. Il est compatible avec MySQLi et PDO sur toutes les versions PHP prises en charge.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn