Maison  >  Article  >  développement back-end  >  Pourquoi ma déclaration préparée par PDO ne s'insère-t-elle pas dans MySQL ?

Pourquoi ma déclaration préparée par PDO ne s'insère-t-elle pas dans MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-25 00:48:11239parcourir

Why Doesn't My PDO Prepared Statement INSERT INTO MySQL?

Requêtes MySQL INSERT INTO avec des instructions préparées PDO

Dans le domaine du développement PHP, l'utilisation de PDO pour exécuter des requêtes MySQL offre de nombreux avantages. Cependant, les débutants rencontrent souvent des obstacles lorsqu'ils tentent d'utiliser des instructions préparées pour les opérations INSERT INTO.

Considérons cet extrait de code énigmatique :

$statement = $link->prepare("INSERT INTO testtable(name, lastname, age)
VALUES('Bob','Desaunois','18')");
$statement->execute();

Malgré les efforts diligents du codeur, la base de données reste désespérément vide. Quelle erreur insaisissable se cache dans le code ?

La clé cachée du succès

La clé pour résoudre cette énigme réside dans la compréhension du pouvoir de la liaison de paramètres. Les instructions préparées par PDO permettent aux développeurs de lier en toute sécurité des valeurs à des espaces réservés dans leurs requêtes SQL sans recourir à la concaténation. Pour ce faire, les étapes suivantes doivent être méticuleusement suivies :

  1. Utilisez les espaces réservés aux paramètres (:foo ou ?) dans l'instruction SQL.
  2. Construisez un tableau associatif ou un tableau indexé contenant le valeurs à lier.
  3. Utilisez la fonction execute() pour passer le tableau comme argument, en liant les valeurs aux espaces réservés.

Exemple de code avec paramètres de liaison

$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
    VALUES (:fname, :sname, :age)');

$statement->execute([
    'fname' => 'Bob',
    'sname' => 'Desaunois',
    'age' => '18',
]);

Exemple de code avec paramètres d'index

$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
    VALUES (?, ?, ?)');

$statement->execute(['Bob', 'Desaunois', '18']);

Avantages et Préférences

Les deux méthodes de liaison de paramètres offrent leurs propres avantages et inconvénients. La liaison par noms de paramètres offre une lisibilité accrue, tandis que la liaison par index permet une réduction du code. Le choix dépend en fin de compte des préférences du développeur.

L'adoption de ces principes permettra aux développeurs d'exécuter sans effort des opérations INSERT INTO à l'aide d'instructions préparées par PDO, garantissant ainsi que leurs données trouvent la place qui leur revient dans la base de données.

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