Problème de syntax ?

Invité
Invité n'ayant pas de compte PHPfrance

18 janv. 2007, 11:28

Bonjour,

pour créer une table j'ai :

Code : Tout sélectionner

CREATE TABLE `membres` ( `id` mediumint( 9 ) NOT NULL AUTO_INCREMENT , `session` text NOT NULL , `pseudo` text NOT NULL , `passe` text NOT NULL , `email` text NOT NULL , KEY `id` ( `id` ) )ENGINE = MYISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 1
et mysql me répond :

Code : Tout sélectionner

MySQL a répondu: #1064 - You have an error in your SQL syntax near 'ENGINE = MYISAM
Cela veut dire quoi ?

merci de votre aide

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

18 janv. 2007, 11:50

qu'il y a une erreur de syntaxe dans ton instruction juste avant le mot ENGINE.

Invité
Invité n'ayant pas de compte PHPfrance

18 janv. 2007, 11:59

:lol:

ah bon :shock:

Mais il n'y a aucune erreur de syntaxe :D

tout passe correctement sur version mysql 4 et là,je vient de tester sur 3.23.58 !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 janv. 2007, 12:04

Peut être un soucis de compatibilité.

Je n'aime pas trop cette solutions mais MyISAM étant le type par défaut des tables MySQL, essaye d'enlever le ENGINE = MYISAM :?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

18 janv. 2007, 12:08

À tout hasard, pas d'espace nécessaire entre la ) et le ENGINE ?

Invité
Invité n'ayant pas de compte PHPfrance

18 janv. 2007, 12:44

En mettant un espace, cela ne change rien :(

en enlevant le ENGINE = MYISAM, j'ai encore une erreur, la même mais avec 'DEFAULT CHARSET

et si je retire DEFAULT CHARSET = latin1 AUTO_INCREMENT = 1

ca passe mais est ce que ca va poser problème ou pas ?

Invité
Invité n'ayant pas de compte PHPfrance

18 janv. 2007, 12:45

enfin,si je retire ENGINE = MYISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 1

ca passe mais cela posera problème ou pas ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 janv. 2007, 13:17

Peut être qu'il n'est pas possible de définir ces options dans ta version :shock:

J'avoue que je ne suis pas persuadé de cette explication mais j'ai la flemme de chercher :lol: :oops:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 1961 Messages

18 janv. 2007, 14:04

Bonjour,

Je viens de faire un copier/coller de ton instruction, et ça marche sans souci.

Code : Tout sélectionner

mysql> CREATE TABLE `membres` ( -> -> `id` mediumint( 9 ) NOT NULL AUTO_INCREMENT , -> `session` text NOT NULL , -> `pseudo` text NOT NULL , -> `passe` text NOT NULL , -> `email` text NOT NULL , -> KEY `id` ( `id` ) -> )ENGINE = MYISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 1; Query OK, 0 rows affected (0.00 sec) mysql> show tables; +----------------+ | Tables_in_test | +----------------+ | membres | +----------------+ 1 row in set (0.00 sec) mysql>
Juste pour voir, essaie ceci

Code : Tout sélectionner

CREATE TABLE `membres` ( `id` mediumint( 9 ) NOT NULL AUTO_INCREMENT PRIMARY KEY, `session` text NOT NULL , `pseudo` text NOT NULL , `passe` text NOT NULL , `email` text NOT NULL ) ENGINE=MYISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 janv. 2007, 14:15

tout passe correctement sur version mysql 4 et là,je vient de tester sur 3.23.58 !!
Juste pour rappel, au cas où ça te dise quelque chose Ajoloca. Tu connais mieux MySQL que moi ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 1961 Messages

18 janv. 2007, 14:26

Re,

Je pensais au fait que le champ "AUTO_INCREMENT" doit être unique dans une table et être la clé primaire.

Dans sa déclaration, il ne met que "KEY", c'est pour ça que je lui dis
Juste pour voir, essaie ceci
car je ne suis pas sur que ce soit la raison.
J'ai aussi enlevé les espaces au tour des signes =, je ne suis pas sur que ça puisse avoir une incidence non plus, mais je l'ai toujours vu sans.

Quant à
Tu connais mieux MySQL que moi
Je ne dirais pas ça, bien au contraire, n'oublie pas que ça fais aprox. un an que je fais du MySQL.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Invité
Invité n'ayant pas de compte PHPfrance

20 janv. 2007, 19:48

Je reprend un peu ce topic !

J'ai donc fait comme ceci et je n'ai aucune erreur :
CREATE TABLE `membres` (
`id` mediumint( 9 ) NOT NULL AUTO_INCREMENT ,
`session` text NOT NULL ,
`pseudo` text NOT NULL ,
`passe` text NOT NULL ,
`email` text NOT NULL ,
PRIMARY KEY ( id ) 
) TYPE = MYISAM AUTO_INCREMENT = 1 
Je n'ai aucune erreur émanant de mysql, mais est ce correct pour un espace membre ?

merci

ViPHP
ViPHP | 1961 Messages

20 janv. 2007, 19:52

Bonjour,

Quelle utilité du champ 'session' ???
D'autres infos semblent plus pertinentes comme la date d'inscription, la dernière visite, le nombre de visites, etc...
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Invité
Invité n'ayant pas de compte PHPfrance

20 janv. 2007, 20:12

Quel utilité du champ session ?

Et bien,voila,maintenant je me pose aussi la meme question :lol:

C'est un script d'espace membre que j'ai télécharger !

Je t'explique : le champ session sert pour les numéro de session qui sont updater a chaque reconnexion du membres pour qu'ils ai un numéro unique.... !!

mais avec ta réflexion utile,le champ "id" a une clée primaire,donc un numéro unique a chaque membre !

Donc pourquoi utiliser des chiffres "session" qui s'update a chaque fois ?

ViPHP
ViPHP | 1961 Messages

20 janv. 2007, 20:15

Re,
Je te conseille fortement de laisser gérer l'unicité de la session à PHP.
Il est bien entendu possible de le faire soi-même mais, ....
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein