[ SQL ] Erreur de syntaxe
JEY
-
le père -
le père -
Bonjour,
j'obtiens le message:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , "0", "0" )' at line 1
avec ce code:
Je ne comprend pas ...
j'obtiens le message:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , "0", "0" )' at line 1
avec ce code:
$sql = 'INSERT INTO faisvoter_formulaires VALUES("", '.$titre1.', '.$titre2.', '.$photo1.', '.$photos2.', "0", "0" )';
mysql_query($sql) or die(mysql_error()) ;
Je ne comprend pas ...
3 réponses
-
Bonjour
Je serais tenté de dire que comme ça a l'air correct, c'est sans doute $photos2 qui ne lui plaît pas. Vide sans doute
Mais quand tu auras réglé ce point là , tu tomberas sur un autre problèmes, tes valeurs devraient être entourées de " ou de ', ce qui n'est pas le cas (fais echo $sql pour t'en persuader) . Tu ferais mieux d'écrire
$sql = "INSERT INTO faisvoter_formulaires VALUES('','$titre1', '$titre2', '$photo1', '$photos2', '0', '0' )";
( note que j'ai inversé le rôle des ' et des ", ce qui n'était pas obligatoire, mais tellement plus simple à lire et à écrire. Ça évite tous les points de concaténation)-
Merci le père, ca marche !
J'ai une question: Quel est la différence entre les " " et les ' ' ?
Merci- Quel est la différence entre les " " et les ' ' ?
C'est une bonne question. C'est le B.A. BA du PHP et malgré ça, on trouve 90% des gens qui se prennent les pieds dans le tapis avec. Ou qui s'en tiennent l'utilisation exclusive de l'un ou de l'autre pour des raisons quasi-religieuses.
Le détail technique est là pour chacune des façons d'écrire une chaîne :
https://www.php.net/manual/fr/language.types.string.php#language.types.string.syntax.single
https://www.php.net/manual/fr/language.types.string.php#language.types.string.syntax.double
Pour faire court : dans une chaîne entre " et ", les variables PHP ($variable) sont remplacées par leur valeur. Alors que dans une chaine entre ' et ', les variables ne sont pas interprétées.
essaye :$variable="machin"; echo "Le mot est $variable"; echo 'le mot est $variable'; echo 'le mot est '.$variable; // ici on concatène 2 chaînes avec le . : la chaîne 'le mot est ' et la chaîne contenue dans $variable
Si tu veux mettre un " dans une chaîne entre " et ", il faut le précéder de \. Mais pas besoin de \ pour les ' : echo "'\"'";
Si tu veux mettre un ' dans une chaîne entre ' et ', il faut le précéder de \. Mais pas besoin de \ pour les " : echo '"\'"';
En espérant que je ne me suis pas trop planté dans les ' et les " !
-
-
Salut
essaie :
$sql=("INSERT INTO faisvoter_formulaire VALUES ('','.$titre1.'.$titre1.', '.$titre2.', '.$photo1.', '.$photos2.','0','0')"; -
Pas la peine d'essayer ça, les points dans '.$titre1.'.$titre1.', '.$titre2.', '.$photo1.', '.$photos2.' sont forcément une erreur. Il n'y a rien à concaténer puisqu'il y a une seule chaîne !