Maison > développement back-end > tutoriel php > Comment puis-je insérer en toute sécurité plusieurs lignes dans MySQL à l'aide des instructions préparées PDO ?

Comment puis-je insérer en toute sécurité plusieurs lignes dans MySQL à l'aide des instructions préparées PDO ?

Linda Hamilton
Libérer: 2024-12-29 03:25:22
original
876 Les gens l'ont consulté

How Can I Securely Insert Multiple Rows into MySQL Using PDO Prepared Statements?

Insérations de lignes multiples MySQL avec instructions préparées PDO

Les instructions préparées offrent une sécurité améliorée par rapport aux requêtes statiques. Dans MySQL, l'insertion de plusieurs lignes de valeurs avec une seule requête peut également bénéficier de cet avantage en matière de sécurité.

Implémentation de plusieurs insertions de lignes avec des instructions préparées

Pour insérer plusieurs lignes à l'aide une instruction préparée dans PDO :

  1. Créer la séquence de valeurs : Déterminer le nombre de colonnes dans le tableau et créez une chaîne d'espaces réservés (« ?, ») pour chaque colonne.
  2. Construisez la requête : Construisez l'instruction SQL INSERT avec la clause VALUES répétant le séquence d'espace réservé pour chaque ligne.
  3. Préparez l'instruction : Préparez l'instruction SQL en utilisant $db->prepare.
  4. Fusionner les valeurs des lignes : Combinez les valeurs de toutes les lignes dans un seul tableau fusionné.
  5. Exécutez l'instruction : Exécutez l'instruction préparée en utilisant $stmt->execute avec le tableau fusionné comme paramètre.

Exemple de code :

// Placeholder sequence for a single row
$values = str_repeat('?,', count($row) - 1) . '?';
// Construct the query
$sql = "INSERT INTO table (columnA, columnB) VALUES " .
    str_repeat("($values),", count($rows) - 1) . "($values)";
// Prepare the statement
$stmt = $db->prepare($sql);
// Merge row values
$values = array_merge(...$rows);
// Execute the statement
$stmt->execute($values);
Copier après la connexion

Cette approche garantit la sécurité en construisant la requête de manière dynamique mais avec des espaces réservés et des noms de colonnes constants. Il est compatible avec MySQLi et PDO dans différentes versions de PHP.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal