Array ( [0] => 42000 [1] => 1064 [2] => You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':24:39,SpMyWq8m6K,1)' at line 1 )
Je constate une petite erreur de débutant qui ouvre une faille XSS faille qui permet de faire une injection SQL et rend la requête successible aux erreurs de syntaxe SQL. L'erreur est la manière d'exécuter. Bon, je ne vais pas te taper dessus mais je vais te donner un petit bout de code pour correctement exécuter la requête.
La concaténation effectuée pour construire la requête SQL est vulnérable à une faille appelée injection SQL (pas XSS, où est-ce que j'avais ma tête ?). De plus, cette technique expose la requête aux erreurs de syntaxe à cause du fait que les données peuvent contenir une apostrophe (délimiteur de chaîne de caractères en SQL). Alors, pour pallier cela, je propose que l'on change ta technique de construire la requête par
// $bdd est une instance de PDO
// Préparer la requête
$requete = $bdd->prepare('INSERT INTO une_table(un, champ, de_table) VALUES(?, ?, ?)');
// Exécuter la requête
$requete->execute(['une', 'valeur', "avec l'apostrophe qui casse tout"]);
Cette technique permet non seulement de pallier la faille d'injection SQL en plus d'éviter les erreurs de syntaxe SQL parce qu'il y a un apostrophe.
J'espère avoir été plus clair pour le coup.
Clef PGP: 4577 D41D 2F68 4552 ou https://keybase.io/l4p1n;
Votre problème est résolu ? Mettez-le en résolu pour nous aider à nous retrouver ^^
Tout d'abord, je prépare la requête (on dit comme ça) en appelant $bdd->prepare(...) avec des ?, dans la requête, qui seront remplacés par les valeurs correspondantes plus tard.
Le résultat est un objet de type PDOStatement. Pour exécuter la requête, on fait appel à $requete->execute(...) en lui passant un tableau. Les valeurs de ce tableau remplaceront les ?. Le résultat renvoyé est un booléen; true si la requête a bien été exécutée, false sinon (ou encore une exception si tu l'a paramétré ainsi).
Si t'as besoin de clarifications, je t'invite à consulter la doc, le cours, ou bien de me demander
Clef PGP: 4577 D41D 2F68 4552 ou https://keybase.io/l4p1n;
Votre problème est résolu ? Mettez-le en résolu pour nous aider à nous retrouver ^^
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales