Page 1 sur 1
[R] Error near "," : Syntax error
Posté : dim. 01 mai 2016 19:28
par GMH
Bonjour,
Ce code affiche l'erreur
Error near "," : Syntax error
Code : Tout sélectionner
If Not _SQLite_Exec ($bdd, "INSERT INTO Main VALUES ("&$a[1]&","&$a[2]&","&$a[3]&","&$a[4]&","&$a[5]&","&$a[6]&","&$a[7]&","&$a[8]&","&$a[9]&","&$a[10]&","&$a[11]&","&$a[12]&","&$a[13]&","&$a[14]&","&$a[15]&");") = $SQLITE_OK Then MsgBox(16, "SQLite Error", _SQLite_ErrMsg ())
Je ne vois pas mon erreur. La voyez-vous ?
Je vous remercie.
Re: [..] Error near "," : Syntax error
Posté : dim. 01 mai 2016 19:39
par blacksoul305
Bonsoir !
Personnellement, je n'en vois pas. Maintenant que contient $a ? Des entiers, des chaînes de caractères, des flottants ?
Re: [..] Error near "," : Syntax error
Posté : dim. 01 mai 2016 19:44
par GMH
Bonsoir et merci.
Voici l'affichage dans la console :
! SQLite.au3 Error
--> Function: _SQLite_Exec
--> Query: INSERT INTO Main VALUES (55,1462097222,Bouvines,0,0, -1789343705,0, -1,,30.0,3.0,0,1462097222,0.0,0.0);
--> Error: near ",": syntax error
Re: [..] Error near "," : Syntax error
Posté : dim. 01 mai 2016 19:52
par blacksoul305
Je crois que $a[9] (si je sais encore compter) n'est pas évalué, il y a donc deux virgules consécutives. Il faudrait revoir le code qui permet de générer le tableau et voir pourquoi cette valeur ne va pas bien.
Re: [..] Error near "," : Syntax error
Posté : dim. 01 mai 2016 19:54
par GMH
La valeur $a[9] est vide.
Re: [..] Error near "," : Syntax error
Posté : dim. 01 mai 2016 20:10
par blacksoul305
Mais si on tentait de la remplacer par NULL plutôt ? La sortie console me semble normale à priori, le seul truc qui pourrait coincer syntaxiquement c'est ça, sinon je vois pas.
Re: [..] Error near "," : Syntax error
Posté : dim. 01 mai 2016 20:20
par GMH
J'ai d'autre part l'erreur suivante si $a[
3] contient un espace.
--> Query: INSERT INTO Main VALUES (39,1462094455,Ville Neuve,0,0,196448602,0,-1,,22.0,3.0,0,1462094666,0.0,0.0);
--> Error: near "Neuve": syntax error
Et je retrouve la première erreur si j'enlève l'espace :
--> Query: INSERT INTO Main VALUES (39,1462094455,Villeneuve,0,0,196448602,0,-1,,22.0,3.0,0,1462094666,0.0,0.0);
--> Error: near ",": syntax error
Avec NULL j'obtiens cette erreur :
Query: INSERT INTO Main VALUES (55,1462097222,Bouvines,0,0, -1789343705,0, -1,NULL,30.0,3.0,0,1462097222,0.0,0.0);
--> Error: no such column: Bouvines
Re: [..] Error near "," : Syntax error
Posté : dim. 01 mai 2016 20:30
par blacksoul305
Le fait que "Ville Neuve" entraîne une erreur est parfaitement normale dans le sens où les chaînes de caractères sont normalement entre ' '. Ainsi 'Ville Neuve' devrait pas poser de problème.
Après pour le reste, j'en sais rien. Est-il possible d'avoir la structure de la table ? J'ai pas encore assez d'expérience en MySQL et j'ai encore du mal à déboguer mes propres requêtes haha !
Re: [..] Error near "," : Syntax error
Posté : dim. 01 mai 2016 20:42
par GMH
L'erreur était bien en $a[3]. Ce champ étant rempli par un string, j'ai rajouté les quotes comme vous me l'avez fait remarquer :
If Not _SQLite_Exec ($bdd, "INSERT INTO Main VALUES ("&$a[1]&","&$a[2]&",'"&$a[3]&"',"&$a[4]&","&$a[5]&","&$a[6]&","&$a[7]&","&$a[8]&","&$a[9]&","&$a[10]&","&$a[11]&","&$a[12]&","&$a[13]&","&$a[14]&","&$a[15]&");") = $SQLITE_OK Then MsgBox(16, "SQLite Error", _SQLite_ErrMsg ())
Plus aucune erreur n'est désormais signalée.
Grand merci à vous !
Re: [R] Error near "," : Syntax error
Posté : dim. 01 mai 2016 20:45
par blacksoul305
Bon, finalement c'était cette vilaine chaîne de caractères !
A bientôt et bon courage pour votre projet !
Re: [R] Error near "," : Syntax error
Posté : dim. 01 mai 2016 20:49
par GMH
Je vous remercie.
Re: [R] Error near "," : Syntax error
Posté : lun. 02 mai 2016 11:47
par jchd
Il faut "échapper" toute apostrophe (simple quote) dans toute variable chaîne, en les doublant.
Code : Tout sélectionner
If Not _SQLite_Exec ( _
$bdd, _
"INSERT INTO Main VALUES (" & _
$a[1] & "," & _
$a[2] & "," & _
"'" & StringReplace($a[3], "'", "''") & "'," & _
$a[4] & "," & _
$a[5] & "," & _
$a[6] & "," & _
$a[7] & "," & _
$a[8] & "," & _
"'" & StringReplace($a[9], "'", "''") & "'," & _
$a[10] & "," & _
$a[11] & "," & _
$a[12] & "," & _
$a[13] & "," & _
$a[14] & "," & _
$a[15] & ");"
) = $SQLITE_OK _
Then MsgBox(16, "SQLite Error", _SQLite_ErrMsg ())
Re: [R] Error near "," : Syntax error
Posté : lun. 02 mai 2016 12:18
par GMH
Oui les quotes peuvent en effet poser des problèmes si la valeur entrée contient des apostrophes.
Est-ce que la fonction _SQLite_FastEscape($a[3]) a cette utilité ?
Re: [R] Error near "," : Syntax error
Posté : lun. 02 mai 2016 14:29
par jchd
C'est très exactement ce que fait cette fonction.