MySQL. Problème de syntaxe avec la version 6.0.

Discussions à propos de MySQL, des autres bases de données existantes, et du langage SQL.

Modérateur : Modérateurs

Avatar de l’utilisateur
Frank
Membre avancé
Membre avancé
Messages : 50
Inscription : sam. 07 janv. 2006, 16:28

MySQL. Problème de syntaxe avec la version 6.0.

Messagepar Frank » ven. 28 mars 2008, 23:11

Bonsoir.

J'utilise un serveur MySQL 6.0.

Lorsque j'ai commencé à écrire mes requêtes SQL, en ce qui concerne les champs que voulais laisser vide, je plaçais un double guillemet comme ceci :

INSERT INTO table values('', 'nom', prenom','email');

A savoir, le premier champs est clé primaire et génère automatiquement un numéro.
Ceci fonctionnait très bien.
Maintenant le serveur me retourne une erreur : #1366 - Incorrect integer value: '' for column 'id' at row 1.
Je ne peux plus me servir de Nuked Clan non plus.

Y a t-il a réglage à faire au niveau du serveur MySQL ?

Je serais vraiment très reconnaissant en vers vous pour l'aide qui me sera apportée.

Avatar de l’utilisateur
dexmon
Gourou
Gourou
Messages : 793
Inscription : sam. 18 juin 2005, 9:55
Localisation : /usr/local/apache
Contact :

Re: MySQL. Problème de syntaxe avec la version 6.0.

Messagepar dexmon » sam. 29 mars 2008, 9:42

Bonjour,
vérifier les changements de syntax par rapport à la version 5 de mysql sur le site de mysql.
Sinon vous avez essayer avec cette syntaxe:

Code : Tout sélectionner

INSERT INTO table(id,nom,prenom,email) VALUES ('', 'nom', prenom','email');

?
ImageUNIX foreverImage
Avant toute demande de support, vérifiez votre fichier error.log Apache.
----------------------------------------

Avatar de l’utilisateur
Frank
Membre avancé
Membre avancé
Messages : 50
Inscription : sam. 07 janv. 2006, 16:28

Re: MySQL. Problème de syntaxe avec la version 6.0.

Messagepar Frank » sam. 29 mars 2008, 14:03

En précisant les noms de champs ça ne fonctionne pas. J'avais déjà jetté un coup d'oeil sur le site de MySQL mais je n'ai rien trouvé d'intéressant.
Je vais revérifier quand même.

Merci.

Avatar de l’utilisateur
dexmon
Gourou
Gourou
Messages : 793
Inscription : sam. 18 juin 2005, 9:55
Localisation : /usr/local/apache
Contact :

Re: MySQL. Problème de syntaxe avec la version 6.0.

Messagepar dexmon » sam. 29 mars 2008, 14:55

C'est quand même étrange qu'une requête aussi simple pose problème avec mysql, bien que la syntaxe soit bonne à priori.
Vous avez tester directement en console et avec phpmyadmin ?
ImageUNIX foreverImage
Avant toute demande de support, vérifiez votre fichier error.log Apache.
----------------------------------------

Avatar de l’utilisateur
Frank
Membre avancé
Membre avancé
Messages : 50
Inscription : sam. 07 janv. 2006, 16:28

Re: MySQL. Problème de syntaxe avec la version 6.0.

Messagepar Frank » sam. 29 mars 2008, 15:00

Oui. Après avoir rencontré le problème sur mon site, j'ai directement testé mes requêtes dans la console phpmyadmin. Je vous avouerais que je trouve celà tout à faire étrange aussi :/.

Avatar de l’utilisateur
Frank
Membre avancé
Membre avancé
Messages : 50
Inscription : sam. 07 janv. 2006, 16:28

Re: MySQL. Problème de syntaxe avec la version 6.0.

Messagepar Frank » sam. 29 mars 2008, 15:17

J'ai noté l'erreur suivante. J'avais oublié ce "détail" :

"La version de votre bibliothèque MySQL (5.0.45) diffère de la version de votre serveur MySQL (6.0.0)".

Ou puis-je trouver cette bibliothèque ?
Je tourne sur un environnement Windows.

Avatar de l’utilisateur
dexmon
Gourou
Gourou
Messages : 793
Inscription : sam. 18 juin 2005, 9:55
Localisation : /usr/local/apache
Contact :

Re: MySQL. Problème de syntaxe avec la version 6.0.

Messagepar dexmon » sam. 29 mars 2008, 17:34

Frank a écrit :J'ai noté l'erreur suivante. J'avais oublié ce "détail" :

"La version de votre bibliothèque MySQL (5.0.45) diffère de la version de votre serveur MySQL (6.0.0)".

Ou puis-je trouver cette bibliothèque ?
Je tourne sur un environnement Windows.

Vous avez mi a jour le serveur sans ses dépendances ont dirais.
Vous devez aussi installer tous ce qui va avec.
Mettre a jour une version 5.0.21 vers 5.0.45 passe encore car les bibliothèques sont pratiquement les mêmes, mais une version 5 vers une 6 faut savoir ce qu'on fait.
Sous windows je peux pas vous dire plus, car je ne sais pas où se trouve tout le mic mac.
Cherchez une dll à mettre a jour ou regarder sur le site de mysql s'il y a un paquet avec les dépendances complète à installer.
Dans tous les cas, google pourra mieux vous aider que moi.
ImageUNIX foreverImage
Avant toute demande de support, vérifiez votre fichier error.log Apache.
----------------------------------------

Avatar de l’utilisateur
remifedora
Membre avancé
Membre avancé
Messages : 94
Inscription : mar. 27 févr. 2007, 14:00
Localisation : Champagne
Contact :

Re: MySQL. Problème de syntaxe avec la version 6.0.

Messagepar remifedora » sam. 29 mars 2008, 20:39

Frank a écrit :INSERT INTO table values('', 'nom', prenom','email');
...
Maintenant le serveur me retourne une erreur : #1366 - Incorrect integer value: '' for column 'id' at row 1. .


Visiblement ton serveur est configuré en mode "strict"

Pour vérifier :

Code : Tout sélectionner

mysql> show variables like 'sql_mode';
+---------------+-------------------+
| Variable_name | Value             |
+---------------+-------------------+
| sql_mode      | STRICT_ALL_TABLES |
+---------------+-------------------+
1 row in set (0.00 sec)


Donc, la bonne requête est :

Code : Tout sélectionner

INSERT INTO table(nom,prenom,email) VALUES ('nom', prenom','email');


Je sais que ce mode est plus contraignant, mais quand tu y réfléchis, ta requête était effectivement incorrecte et seule la grande permissivité de MySQL l'autorisait à fonctionner.

A+
Des RPM LAMP pour Fedora / RHEL / CentOS sur http://rpms.famillecollet.com/

Avatar de l’utilisateur
Frank
Membre avancé
Membre avancé
Messages : 50
Inscription : sam. 07 janv. 2006, 16:28

Re: MySQL. Problème de syntaxe avec la version 6.0.

Messagepar Frank » dim. 30 mars 2008, 14:56

Code : Tout sélectionner

+---------------+---------------------------------------------------------------
-+
| Variable_name | Value
 |
+---------------+---------------------------------------------------------------
-+
| sql_mode      | STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 |
+---------------+---------------------------------------------------------------
-+


Voici ce que j'obtiens.
J'espérais que MySQL reste tolérant car par exemple NukedClan ne fonctionne plus et toutes les requêtes sont faites de cette façon :s. Donc modifier tous les sites sur NK serait laborieux.

En ce qui concerne les dépendances je vais tenter de les trouver.

Merci.

Avatar de l’utilisateur
remifedora
Membre avancé
Membre avancé
Messages : 94
Inscription : mar. 27 févr. 2007, 14:00
Localisation : Champagne
Contact :

Re: MySQL. Problème de syntaxe avec la version 6.0.

Messagepar remifedora » dim. 30 mars 2008, 15:09

Ben dans ce cas modifie le mode en ajoutant la directive sql_mod dans ton fichier de config.

++
Des RPM LAMP pour Fedora / RHEL / CentOS sur http://rpms.famillecollet.com/

Avatar de l’utilisateur
Frank
Membre avancé
Membre avancé
Messages : 50
Inscription : sam. 07 janv. 2006, 16:28

Re: MySQL. Problème de syntaxe avec la version 6.0.

Messagepar Frank » dim. 30 mars 2008, 15:33

J'ai mis en commentaire la directive "sql-mode" dans my.ini. Je n'ai plus de problèmes.
Je cherche encore pour les dépendances.

Encore merci ;).

EDIT : il semble qu'il n'existe pas encore de bibliothèque sur PHP pour MySQL 6.0.

remus69
Nouveau membre
Messages : 1
Inscription : jeu. 05 févr. 2009, 16:50

Re: MySQL. Problème de syntaxe avec la version 6.0.

Messagepar remus69 » jeu. 05 févr. 2009, 16:53

Bonjour,

Est ce bien en faisant comme cela :

Code : Tout sélectionner

# Set the SQL mode to strict
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"


?

Je vous remercie!


Revenir vers « SQL »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité