Bug avec l'Insert sous phpMyAdmin

Eléphanteau du PHP | 32 Messages

13 oct. 2005, 14:04

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]

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 oct. 2005, 14:12

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')
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

Eléphanteau du PHP | 32 Messages

13 oct. 2005, 14:18

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 :-(

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 oct. 2005, 14:22

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)
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

Eléphanteau du PHP | 32 Messages

13 oct. 2005, 14:48

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 oct. 2005, 14:50

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
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

Eléphanteau du PHP | 32 Messages

13 oct. 2005, 15:03

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...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

13 oct. 2005, 15:15

:shock: là, j'avoue que je flanche !!!
Redemande de l'aide ... ou emmene ton PC à St Jacques de Compostelle ;)
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

Eléphanteau du PHP | 32 Messages

13 oct. 2005, 15:17

: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)

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

13 oct. 2005, 16:28

`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 )

Eléphanteau du PHP | 32 Messages

13 oct. 2005, 17:53

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.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

13 oct. 2005, 18:23

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 ;)

Eléphanteau du PHP | 32 Messages

13 oct. 2005, 19:53

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:

invité de passage...
Invité n'ayant pas de compte PHPfrance

16 nov. 2005, 21:59

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

Petit nouveau ! | 3 Messages

17 nov. 2005, 12:18

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 !