Erreur de syntaxe SQL

vleeks Messages postés 32 Statut Membre -  
vleeks Messages postés 32 Statut Membre -
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 Statut Membre 1
 
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 32 Statut Membre
 
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 Statut Membre 1
 
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 32 Statut Membre
 
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