Maison >développement back-end >tutoriel php >Pourquoi mes instructions préparées PDO ne parviennent-elles pas à s'INSÉRER dans MySQL ?
Erreurs d'instructions préparées avec INSERT INTO dans PDO
Lors de la navigation dans les complexités de PDO, vous pouvez rencontrer des difficultés à utiliser des instructions préparées pour les requêtes MySQL. Considérez le code suivant :
$dbhost = "localhost"; $dbname = "pdo"; $dbusername = "root"; $dbpassword = "845625"; $link = new PDO("mysql:host=$dbhost;dbname=$dbname","$dbusername","$dbpassword"); $statement = $link->prepare("INSERT INTO testtable(name, lastname, age) VALUES('Bob','Desaunois','18')"); $statement->execute();
Malgré cette approche, votre base de données reste vide.
La solution réside dans l'utilisation appropriée des instructions préparées. Utilisez plutôt ce qui suit :
$link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $statement = $link->prepare('INSERT INTO testtable (name, lastname, age) VALUES (:fname, :sname, :age)'); $statement->execute([ 'fname' => 'Bob', 'sname' => 'Desaunois', 'age' => '18', ]);
Les instructions préparées fournissent une vérification des entrées. Utilisez les espaces réservés ':parameter' dans votre instruction SQL et transmettez un tableau associatif de ces paramètres dans la fonction 'execute'. Vous pouvez également utiliser « ? » des espaces réservés et transmettez un tableau de valeurs.
Les deux méthodes offrent des avantages et des inconvénients. La liaison des noms de paramètres améliore la lisibilité, tandis que cette dernière méthode simplifie le code.
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!