Page 1 sur 2

Bug avec l'Insert sous phpMyAdmin

Posté : 13 oct. 2005, 14:04
par charles59
Bonjour,

J'ai un p'tit problème avec l'insert sous phpMyAdmin...

Voici ma table :

Code : Tout sélectionner

CREATE TABLE `backlist_username` ( `bu_id` tinyint(3) unsigned NOT NULL auto_increment, `bu_username` varchar(16) NOT NULL, PRIMARY KEY (`bu_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=1 AUTO_INCREMENT=1 ;
Et lors d'un insert par l'interface de phpMyAdmin, il me dit :

Erreur #1366 - Incorrect integer value: '' for column 'bu_id' at row 1
Avec la requete :

Code : Tout sélectionner

INSERT INTO `backlist_username` ( `bu_id` , `bu_username` ) VALUES ( '', 'mlkmlk' )

Précision: testé avec phpMyAdmin 2.6.3-pl1 et phpMyAdmin 2.6.4-pl1 sous Mysql 5.0


Apparemant, MySQL n'accepte pas cette syntaxe de requete car avec celle là, ça marche très bien quand je lance cette requete en commande SQL sous phpMyAdmin :

Code : Tout sélectionner

INSERT INTO `backlist_username` ( `bu_username` ) VALUES ( 'mlkmlk' )

Merci pour votre futur aide :)
Charles[/code]

Posté : 13 oct. 2005, 14:12
par zeus
ton champs 'bu_id' est de type NOT NULL et dans ta requete, tu ne mets pas de valeurs

Code : Tout sélectionner

INSERT INTO `backlist_username` ( `bu_id` , `bu_username` ) VALUES ('' <= Il manque une valeur ici , 'mlkmlk' )
Vu que tu as un auto_increment sur ce champ, profite en et en t'occupe pas de remplir ce champs et ne fait que des requetes comme suit

Code : Tout sélectionner

INSERT INTO `backlist_username` ( `bu_username` ) VALUES ( 'mlkmlk')

Posté : 13 oct. 2005, 14:18
par charles59
Bonjour Zeus !

Je suis tout à fait d'accord avec toi mais malheureusement, c'est phpMyAdmin qui me sort ce type de requête lorsque je passe par son formulaire pour ajouter des données... :roll:

J'ai vérifié sous MySQL 4.0 sur une autre machine et ça fonctionne parfaitement lorsque phpMyAdmin effectue cette requête :-(

Posté : 13 oct. 2005, 14:22
par zeus
Bonjour Zeus !
Excuse moi, j'ai été malpoli :oops:
Bonjour ;)
Je suis tout à fait d'accord avec toi mais malheureusement, c'est phpMyAdmin qui me sort ce type de requête lorsque je passe par son formulaire pour ajouter des données... :roll:
:shock: quel formulaire ? Tu ne construits pas tes requetes tout seul ? Si c'est le cas, est-tu obligé d'utiliser cette génération ?
J'ai vérifié sous MySQL 4.0 sur une autre machine et ça fonctionne parfaitement lorsque phpMyAdmin effectue cette requête :-(

Est-ce que la structure de la table est identique (structure, type, contrainte)

Posté : 13 oct. 2005, 14:48
par charles59
Excuse moi, j'ai été malpoli :oops:
Pas de problème :)
:shock: quel formulaire ? Tu ne construits pas tes requetes tout seul ? Si c'est le cas, est-tu obligé d'utiliser cette génération ?
Et bien, j'utilise régulièrement phpMyAdmin pour effectuer des insert plus facilement.
Après, je pourrai très bien aller fouiller dans le code php de phpMyAdmin mais avant tout, j'aimerai savoir si l'erreur vient de moi ou non !
Est-ce que la structure de la table est identique (structure, type, contrainte)
Oui, je viens de tester avec la même table sur un serveur qui possède phpMyAdmin 2.6.1 et MySQL 4.1.13

Posté : 13 oct. 2005, 14:50
par zeus
Quand tu dit que tu as testé, tu copie/colle la requete ou tu passes par le formulaire ?

Si c'est la 2nd option, tente de prendre la requete qui fonctionne et de la tester sur l'autre et de faire l'inverse avec celle qui ne fonctionne pas

Posté : 13 oct. 2005, 15:03
par charles59
J'ai testé en copie/colle et en formulaire !

Ce code fonctionne sous Mysql 4 et pas sous mysql 5

Code : Tout sélectionner

INSERT INTO `backlist_username` ( `bu_id` , `bu_username` ) VALUES ( '', 'test' )
Pour ce qui est de la structure de la requete Insert, bizarrement, phpMyAdmin utilise celle là sur toutes les versions que j'ai pu tester lorsque l'on fait un insert par son formulaire...

Posté : 13 oct. 2005, 15:15
par zeus
:shock: là, j'avoue que je flanche !!!
Redemande de l'aide ... ou emmene ton PC à St Jacques de Compostelle ;)

Posté : 13 oct. 2005, 15:17
par charles59
:shock: là, j'avoue que je flanche !!!
Redemande de l'aide ... ou emmene ton PC à St Jacques de Compostelle ;)
Pas de problème, merci tout de même 8)

Posté : 13 oct. 2005, 16:28
par mere-teresa
`bu_id` tinyint(3) unsigned NOT NULL auto_increment

Quand c'est en auto-increment, tu n'as pas du tout à en parler, surtout si tu mets une chaîne de caractères vide comme '' alors que c'est un tiny_int ! (voir le message d'erreur Erreur #1366 - Incorrect integer value: '' for column 'bu_id' at row 1 )

Posté : 13 oct. 2005, 17:53
par charles59
Bonsoir mere-teresa,

Je suis tout à fait d'accord toi mais ce n'est pas moi qui construit cette requête mais belle et bien phpMyAdmin lorsque j'utilise le formulaire pour insérer des données.

Posté : 13 oct. 2005, 18:23
par ouckileou
Salut,

le problème semble venir de phpMyAdmin, d'après vos conclusions

Si tel est le cas, es-tu allé voir sur leur site/forum ?

Tu y trouveras peut-être mention du bug correspondant ou tu pourras le signaler si c'en est réellement un ;)

Posté : 13 oct. 2005, 19:53
par charles59
Salut,

le problème semble venir de phpMyAdmin, d'après vos conclusions

Si tel est le cas, es-tu allé voir sur leur site/forum ?

Tu y trouveras peut-être mention du bug correspondant ou tu pourras le signaler si c'en est réellement un ;)
Bonsoir,

J'y suis déjà allé plusieurs fois et je n'ai rien trouvé de relatif à ce problème malheureusement.

Mais après plusieurs recherches, je semble être le seul à avoir ce problème, et donc je me dis que le problème ne doit pas venir du script en lui même....

Snif :roll:

Merci de ton aide ouckileou :lol:

Posté : 16 nov. 2005, 21:59
par invité de passage...
J'ai eu le même problème, la solution c'est que tu as du activer le strict mode de mysql5, que phpmyadmin ne supporte pas. Il suffit de reconfigurer ton mysql

Posté : 17 nov. 2005, 12:18
par bzaume
J'ai eu le même problème, la solution c'est que tu as du activer le strict mode de mysql5, que phpmyadmin ne supporte pas. Il suffit de reconfigurer ton mysql
L'invité de passage pourrait-il nous dire comment on désactive ce strict mode mysql5 ? :roll:
Merci !