Erreur de syntaxe SQL : correction des mots clés de et vers à l'aide de backticks
Lorsque vous travaillez avec des requêtes SQL à l'aide de PDO, il est crucial de vous assurer que les noms de colonnes n'entrent pas en conflit avec des mots-clés réservés. Dans votre cas, vous avez rencontré l'erreur « SQLSTATE[42000] : erreur de syntaxe ou violation d'accès » car vous utilisez « from » et « to » comme noms de colonnes, qui sont des mots-clés réservés dans SQL.
Pour résoudre ce problème, entourez « de » et « à » entre guillemets ( ) lorsque vous y faites référence en tant que noms de colonnes. Les backticks sont utilisés dans MySQL pour citer les noms de colonnes et empêcher qu'ils soient interprétés comme des mots-clés.
Votre requête modifiée devrait ressembler à ceci :
INSERT INTO messages (`from`, `to`, name, subject, message) VALUES (:from, :to, :name, :subject, :message)
De plus, vous devrez renommer le Clés « from » et « to » dans votre tableau $vals pour refléter les noms de colonnes mis à jour :
$vals = array( ':from' => $email, ':to' => $recipient, ':name' => $name, ':subject' => $subject, ':message' = >$message );
En effectuant ces ajustements, vous exécuterez avec succès votre requête SQL sans rencontrer d'erreur de syntaxe.
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!