Requete Mysql
Résolu
dragondark
Messages postés
465
Date d'inscription
Statut
Membre
Dernière intervention
-
dragondark Messages postés 465 Date d'inscription Statut Membre Dernière intervention -
dragondark Messages postés 465 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai effectuer une requete sous ma base de donné mais elle me retourne une erreur, j'ai beau chercher je ne trouve pas ou est-ce qu'elle se trouve
voila :
CREATE TABLE PLAYERS (
PL_ID INTEGER NOT NULL PRIMARY KEY,
PL_ISOPTIN BOOLEAN NOT NULL,
PL_CRYPT VARCHAR(161),
PL_EMAIL VARCHAR(250),
PL_UNSUBSCRIBEDATE DATE,
PL_SUBSCRIBDATE DATE NOT NULL DEFAULT curdate(),
PL_ISOK4DELIVERY BOOLEAN NOT NULL DEFAULT FALSE,
PL_RATING DECIMAL(10,2) NOT NULL DEFAULT "1"
) TYPE = InnoDB
il me retourne cette erreur
#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 'curdate(), PL_ISOK4DELIVERY BOOLEAN NOT NULL DEFAULT FALSE, PL_RATING DECIMAL(' at line 7
et me retourne ma requete sous cette forme
CREATE TABLE PLAYERS(
PL_ID INTEGER NOT NULL PRIMARY KEY ,
PL_ISOPTIN BOOLEAN NOT NULL ,
PL_CRYPT VARCHAR( 161 ) ,
PL_EMAIL VARCHAR( 250 ) ,
PL_UNSUBSCRIBEDATE DATE,
PL_SUBSCRIBDATE DATE NOT NULL DEFAULTcurdate( ) ,
PL_ISOK4DELIVERY BOOLEAN NOT NULL DEFAULTFALSE,
PL_RATING DECIMAL( 10, 2 ) NOT NULL DEFAULT "1"
) TYPE = InnoDB;
donc je penserais que cela vient du faite que la base racroche curedate et false a mes mots clef, mais je ne comprend pas prk
l'autre erreur possible et plus envisageable est curdate(), mais quand je fais un select curdate(), il me retourne bien un valleur, donc c'est bien compris par ma base de donnée
donc voila je ne voie pas ou est-ce que mon erreur peux se cacher :s
si vous pouvez me renseigner
cordialement
dragondark
j'ai effectuer une requete sous ma base de donné mais elle me retourne une erreur, j'ai beau chercher je ne trouve pas ou est-ce qu'elle se trouve
voila :
CREATE TABLE PLAYERS (
PL_ID INTEGER NOT NULL PRIMARY KEY,
PL_ISOPTIN BOOLEAN NOT NULL,
PL_CRYPT VARCHAR(161),
PL_EMAIL VARCHAR(250),
PL_UNSUBSCRIBEDATE DATE,
PL_SUBSCRIBDATE DATE NOT NULL DEFAULT curdate(),
PL_ISOK4DELIVERY BOOLEAN NOT NULL DEFAULT FALSE,
PL_RATING DECIMAL(10,2) NOT NULL DEFAULT "1"
) TYPE = InnoDB
il me retourne cette erreur
#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 'curdate(), PL_ISOK4DELIVERY BOOLEAN NOT NULL DEFAULT FALSE, PL_RATING DECIMAL(' at line 7
et me retourne ma requete sous cette forme
CREATE TABLE PLAYERS(
PL_ID INTEGER NOT NULL PRIMARY KEY ,
PL_ISOPTIN BOOLEAN NOT NULL ,
PL_CRYPT VARCHAR( 161 ) ,
PL_EMAIL VARCHAR( 250 ) ,
PL_UNSUBSCRIBEDATE DATE,
PL_SUBSCRIBDATE DATE NOT NULL DEFAULTcurdate( ) ,
PL_ISOK4DELIVERY BOOLEAN NOT NULL DEFAULTFALSE,
PL_RATING DECIMAL( 10, 2 ) NOT NULL DEFAULT "1"
) TYPE = InnoDB;
donc je penserais que cela vient du faite que la base racroche curedate et false a mes mots clef, mais je ne comprend pas prk
l'autre erreur possible et plus envisageable est curdate(), mais quand je fais un select curdate(), il me retourne bien un valleur, donc c'est bien compris par ma base de donnée
donc voila je ne voie pas ou est-ce que mon erreur peux se cacher :s
si vous pouvez me renseigner
cordialement
dragondark
A voir également:
- Requete Mysql
- Mysql community server - Télécharger - Bases de données
- Mysql error 2002 ✓ - Forum Linux / Unix
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Erreur de requete facebook - Forum Facebook
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
4 réponses
Bonjour
Bizarre, en effet, j'ai fait la même constatation que toi.
Pour ce qui est des mots curdate et false raccrochés à default, ça ressemble à un bug de phpmyadmin, si tu le fais directement en php ils ne sont pas raccrochés.
Malheureusement , Après plusieurs essais, j'ai l'impression que tout bêtement les fonctions ne sont pas permises dans la clause DEFAULT. La doc, n'est pas bavarde à ce sujet, elle dit simplement que les fonctions peuvent être utilisées "en certains points des commandes SQL", ce qui sous-entend pas partout Et aucun commentaire du côté de la clause DEFAULT qui dit simplement DEFAULT default_value sans dire quoi que ce soit sur ce qui est autorisé comme default_value
Le problème est facilement contournable, mais c'est vrai que ça aurait été plus agréable de pouvoir le faire comme tu l'as écrit.
Bizarre, en effet, j'ai fait la même constatation que toi.
Pour ce qui est des mots curdate et false raccrochés à default, ça ressemble à un bug de phpmyadmin, si tu le fais directement en php ils ne sont pas raccrochés.
Malheureusement , Après plusieurs essais, j'ai l'impression que tout bêtement les fonctions ne sont pas permises dans la clause DEFAULT. La doc, n'est pas bavarde à ce sujet, elle dit simplement que les fonctions peuvent être utilisées "en certains points des commandes SQL", ce qui sous-entend pas partout Et aucun commentaire du côté de la clause DEFAULT qui dit simplement DEFAULT default_value sans dire quoi que ce soit sur ce qui est autorisé comme default_value
Le problème est facilement contournable, mais c'est vrai que ça aurait été plus agréable de pouvoir le faire comme tu l'as écrit.
fâcheux en effet, on m'a conseiller de le faire en ligne de commande, je vais voir ce que cela donnera,
en tout cas default false fonction tout seul (en tout cas le true oui :)), on dirais simplement que curdate(), fais planter le reste du script
dans ces cas la tu ne sais pas ce que je pourrais mettre a la place de curdate? pour avoir la date actuelle?; car now() me renvoie trop de détail :s, je vais voir ce que je peux faire
en tout cas default false fonction tout seul (en tout cas le true oui :)), on dirais simplement que curdate(), fais planter le reste du script
dans ces cas la tu ne sais pas ce que je pourrais mettre a la place de curdate? pour avoir la date actuelle?; car now() me renvoie trop de détail :s, je vais voir ce que je peux faire
Non, d'après mes essais, ce sont les fonctions qui sont interdites comme valeurs de DEFAULT, pas plus CURDATE qu'une autre.
Mais ça c'est pas un vrai problème, tu peux bien insérer la date courante en PHP, non ?
Mais ça c'est pas un vrai problème, tu peux bien insérer la date courante en PHP, non ?
en faite j'ai resolue mon probleme en jouant sur un autre critere, j'aurais pu le faire en php, mais etant donnée que c'est debase que je crée pour la deultiplier avec les sites il m'aurais falut ne pas oublier ce detail
j'ai remplacer $
PL_SUBSCRIBDATE DATE NOT NULL DEFAULT curdate(),
par
PL_SUBSCRIBDATE TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
ca fonctionne on verra ce que cela me donnera une fois que je lancerais le tout :)
merci de vos reponse en tout cas
j'ai remplacer $
PL_SUBSCRIBDATE DATE NOT NULL DEFAULT curdate(),
par
PL_SUBSCRIBDATE TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
ca fonctionne on verra ce que cela me donnera une fois que je lancerais le tout :)
merci de vos reponse en tout cas