Erreur de syntaxe SQL

Fermé
vleeks Messages postés 29 Date d'inscription jeudi 20 décembre 2012 Statut Membre Dernière intervention 7 octobre 2014 - 6 sept. 2013 à 19:00
vleeks Messages postés 29 Date d'inscription jeudi 20 décembre 2012 Statut Membre Dernière intervention 7 octobre 2014 - 6 sept. 2013 à 19:16
Bonjour,

je récupère une erreur lors de l'exécution d'un de mes scripts. Je ne trouve pas l'origine de l'erreur, la voici :

Erreur SQL lors de l'insertion !INSERT INTO seances(patrouille, lieu, else, time) VALUES(Surcouf, test, test, test)

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 'else, time) VALUES(Surcouf, test, test, test)' at line 1

Et voici l'origine de l'erreur inconnue.. :

	$patrol = 0;


//distinction entre chaque patrouille
if($_POST['secur'] == 'jb') {
$patrol = 'Jean-Bart';
}
else if($_POST['secur'] == 'fr') {
$patrol = 'Fregate';
}
else if($_POST['secur'] == 'sf') {
$patrol = 'Surcouf';
}

$lieu = utf8_decode($_POST['lieu']);
$time = utf8_decode($_POST['time']);
$desc = utf8_decode($_POST['desc']);

$sql = 'INSERT INTO seances(patrouille, lieu, else, time) VALUES('.$patrol.', '.$lieu.', '.$desc.', '.$time.')';
mysql_query($sql) or die('Erreur SQL lors de l'insertion !'.$sql.'<br>'.mysql_error());

J'ai essayé pas mal de trucs, changer les apostrophes, les noms des variables... Sans effet. Merci beaucoup de votre aide !

4 réponses

TucSky Messages postés 32 Date d'inscription mercredi 29 juin 2011 Statut Membre Dernière intervention 15 mars 2022 1
6 sept. 2013 à 19:04
Salut, rapidement comme ça, je me suis dit que c'etait le champ "else" qui posait un soucis, tu peut le renommer en autre chose que "else" et voir se que ça donne ?

Le mot "else" est utilisé dans les requete sql pour les conditions, c'est particulié et il me semple que ça peut pas s'utiliser en nom de champ...

Ou alors ajoute des '' autour des nom des champs dans la requete.

Je suis pas sur du tout mais ça vaut le coup de tester :-)
1
vleeks Messages postés 29 Date d'inscription jeudi 20 décembre 2012 Statut Membre Dernière intervention 7 octobre 2014
6 sept. 2013 à 19:11
Salut,

merci de ta réponse, mais ca marche pas^^. L'erreur a évolué. J'ai changé en description, et ca donne ca comme erreur maintenant :

Erreur SQL lors de l'insertion !INSERT INTO seances(patrouille, lieu, description, time) VALUES(Surcouf, test, test, test)

Unknown column 'Surcouf' in 'field list'

Alors que Surcouf est une valeur passée en variable, et supposée être envoyée..
0
TucSky Messages postés 32 Date d'inscription mercredi 29 juin 2011 Statut Membre Dernière intervention 15 mars 2022 1
6 sept. 2013 à 19:13
Ok je vois bon ajoute des "'" entre les valeur passée en variable, parceque sinon Mysql croit que c'est des champs.

$sql = "INSERT INTO seances(patrouille, lieu, description, time) VALUES('".$patrol."', '".$lieu."', '".$desc."', '".$time."')";
0
vleeks Messages postés 29 Date d'inscription jeudi 20 décembre 2012 Statut Membre Dernière intervention 7 octobre 2014
6 sept. 2013 à 19:16
En fait j'ai trouvé, il suffisait maintenant de changer les guillemets de ".$test." à '".$test."'

Merci en tout cas, le problème principal etait bien ce else^^
0