Page 1 sur 1

Erreur sur MySQL

Publié : 13 oct. 2007, 13:42
par Ymai
Bonjour
Lors d'une tentative d'envoi de la requête

Code : Tout sélectionner

CREATE TABLE `ades_users` (
`idedu` int( 11 ) NOT NULL AUTO_INCREMENT ,
`user` varchar( 30 ) COLLATE utf8_unicode_ci NOT NULL default '',
`nom` varchar( 30 ) COLLATE utf8_unicode_ci NOT NULL default '',
`prenom` varchar( 30 ) COLLATE utf8_unicode_ci NOT NULL default '',
`email` varchar( 40 ) COLLATE utf8_unicode_ci NOT NULL default '',
`mdp` varchar( 40 ) COLLATE utf8_unicode_ci NOT NULL ,
`privilege` enum( 'admin', 'educ', 'readonly' ) COLLATE
utf8_unicode_ci NOT NULL default 'educ',
`timeover` tinyint( 20 ) NOT NULL default '0',
PRIMARY KEY ( `idedu` ) ,
KEY `user` ( `user` )
) ENGINE = MYISAM DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci
COMMENT = 'Utilisateurs de l''application';
sur une machine sous zmws, un utilisateur me signale l'erreur suivante:

Code : Tout sélectionner

MySQL a répondu:Documentation
#1064 - 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 'collate utf8_unicode_ci NOT NULL default '',
  `nom` varchar(30
La même personne utilise également EasyPHP. Et là, pas de problème.

Je présume que c'est un souci de version de MySQL. Gagné?
Merci pour toute réponse.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty)

Publié : 13 oct. 2007, 13:54
par calimo
Je pense que tu peux remplacer

Code : Tout sélectionner

`nom` varchar( 30 ) COLLATE utf8_unicode_ci NOT NULL default '', 
par

Code : Tout sélectionner

nom varchar(30) NOT NULL, 
pour un résultat (presque) identique... pour autant que l'encodage par défaut de la base soit utf8_unicode_ci bien sûr !

Après, il faudrait voir la version de MySQL...

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20061201 Firedragon Firefox/2.0.0.6 (Ubuntu-feisty)

Publié : 13 oct. 2007, 16:21
par Ymai
Merci pour la réponse
J'avais simplement enlevé toute référence au type d'encodage. C'est donc sans doute un peu trop drastique. Je risque donc plein de problèmes avec tous les caractères accentués.

L'utilisateur signale qu'il est sous MySQL 5.0.37 sous zmws (là où la requête fait problème) et MySQL 5.0.27 sous EasyPHP où la requête passe sans problème.
Serait-ce plutôt un souci de configuration de MySQL?

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty)

Publié : 13 oct. 2007, 16:52
par calimo
Ymai a écrit :Merci pour la réponse
J'avais simplement enlevé toute référence au type d'encodage. C'est donc sans doute un peu trop drastique. Je risque donc plein de problèmes avec tous les caractères accentués.
Non, si la base de données a utf8_unicode_ci comme encodage par défaut, il n'y a aucun risque a priori.
Mais visiblement ce n'est pas ça, la version 5 supporte l'unicode (je pensais que ça aurait pu être une vieille 3.x qui subsistent encore...)
Ymai a écrit :L'utilisateur signale qu'il est sous MySQL 5.0.37 sous zmws (là où la requête fait problème) et MySQL 5.0.27 sous EasyPHP où la requête passe sans problème.
Serait-ce plutôt un souci de configuration de MySQL?
C'est plutôt probable, je doute qu'il y ait énormément de différences entre la 5.0.27 et la 5.0.37. Cela dit, je ne vois pas où pourrait se situer une erreur de syntaxe... bref, je ne sais pas trop que te dire :oops:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20061201 Firesalamandre Firefox/2.0.0.6 (Ubuntu-feisty)

Publié : 13 oct. 2007, 17:05
par Ymai
calimo a écrit :Cela dit, je ne vois pas où pourrait se situer une erreur de syntaxe... bref, je ne sais pas trop que te dire :oops:
D'autant que c'est la même syntaxe qui est utilisée dans les deux cas.
Merci d'avoir joué.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty)