2010-12-07 6 views
2

Mise à jour: J'ai trouvé le problème, j'ai sorti l'instruction sql dans un fichier plutôt qu'à l'écran et j'ai remarqué un caractère caché supplémentaire vers la fin de l'instruction sql. Une fois que j'ai enlevé que la requête a bien fonctionné. Couper et coller la déclaration sur le Web l'omettait. Merci pour l'aide. Fixé.Erreur MySQL en PHP mais pas via CLI

Je reçois une erreur 1064 de MySQL avec la requête suivante:

update `table` set `id` = "152614", 
`Field2` = "151", 
`Field3` = "11", 
`Field4` = "1587", 
`Field5` = "Elevator", 
`Field6` = "", 
`Field7` = "", 
`Field8` = "", 
`Field9` = "", 
`Field10` = "", 
`Field11` = "", 
`Field12` = "0", 
`Field13` = "0", 
`Field14` = "0", 
`Field15` = "0", 
`Field16` = "0", 
`Field17` = "0", 
`Field18` = "0", 
`Field19` = "0", 
`Field20` = "0", 
`Field21` = "0", 
`Field22` = "0", 
`Field23` = "0", 
`Field24` = "0", 
`Field25` = "0", 
`Field26` = "0", 
`Field27` = "0", 
`Field28` = "0", 
`Field29` = "0", 
`Field30` = "0", 
`Field31` = "0", 
`Field32` = "0", 
`Field33` = "0", 
`Field34` = "0", 
`Field35` = "0", 
`Field36` = "1065353216", 
`Field37` = "0", 
`Field38` = "0", 
`Field39` = "0", 
`Field40` = "0", 
`Field41` = "0", 
`Field42` = "0", 
`Field43` = "0" where id ="152614" 

erreur MySQL 1064: Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à la version de votre serveur MySQL pour la bonne syntaxe à utiliser près de la ligne 43

La ligne 43 est la dernière ligne.

Si je le coller dans le mysql CLI il fonctionne très bien:

Recherche OK, 1 ligne affectée (0.00 sec) lignes matched: 1 Changé: 1 Avertissements: 0

A ce stade, je m à perte, des idées? Merci.

MySQL Version: 05/01/52 PHP Version: 5.3.3

Il est assez profond dans mon script, mais la partie qui produit l'erreur est:

$result = mysql_query($sql); 
if (mysql_errno()) { 
echo "MySQL error ".mysql_errno().": ".mysql_error()."\n<br>When executing <br>\n$sql\n<br>"; 

Si je sortie $ sql, c'est identique à la pâte pour la requête ci-dessus (ci-dessus est de la ligne d'erreur).

+1

pouvez-vous s'il vous plaît coller votre code PHP? –

+0

Étrange. Êtes-vous sûr que c'est la valeur exacte de $ sql? Comment construisez-vous la requête $ sql? –

+0

J'ai essayé de générer $ sql juste avant la ligne $ result, et j'ai collé cela dans la CLI et j'ai reçu le résultat identique (Query OK ..). Je crée le $ sql en lisant un fichier binaire puis: $ sql. = '''. $ Field ['nom']. '' = "' .mysql_real_escape_string ($ data). '",'; – Rob

Répondre

1

J'ai trouvé le problème, j'ai sorti l'instruction sql dans un fichier plutôt qu'à l'écran et j'ai remarqué un caractère caché supplémentaire vers la fin de l'instruction sql. Une fois que j'ai enlevé que la requête a bien fonctionné. Couper et coller la déclaration sur le Web l'omettait. Merci pour l'aide. Fixé.