Page 1 sur 1

Auto increment ne fonctionne pas

Posté : 05 nov. 2005, 21:14
par alexbad
J'ai installé Mysql, Apache et tout le tralala (ça doit faire 5 fois je le dis sur le forum) et là j'ai un petit problème. Lorsque je met ma colonne id en auto_increment, il exige que je la remplisse bref, le auto_increment ne change rien du tout. Quelqu'un saurait pas pourquoi?

Posté : 05 nov. 2005, 21:17
par pascaltje
ça se passe sur quelle requete? on peut voir ce que tu donnes à MySQL ?

si dans un insert tu précises le champ, forcément ça va pas aller.

A+

Pascal

Posté : 05 nov. 2005, 21:19
par alexbad
Ça marche pas dans mes requêtes INSER INTO mais même dans phpmyadmin il me fous à la porte sans une valeur précise au id

Et faut noter que même sans préciser le champ, c'est supposé marcher, avant, j'avais easyphp et ça fonctionnait très bien

Posté : 05 nov. 2005, 21:24
par cadav0r
il faut que tu lui indique 'NULL' dans l'INSERT pour que ca marche

Posté : 05 nov. 2005, 21:25
par pascaltje
fais voir la structure de la table (avec les infos sur les champs), ça devrait donner une piste.

A+

Pascal

Posté : 05 nov. 2005, 21:27
par alexbad
Comme tu veux, mais je rappelle que ça marchait avant sur easyphp:

Code : Tout sélectionner

CREATE TABLE `lapage_mp` ( `id` mediumint(9) NOT NULL auto_increment, `sujet` varchar(255) NOT NULL, `message` longtext NOT NULL, `date` varchar(255) NOT NULL, `a` varchar(255) NOT NULL, `de` varchar(255) NOT NULL, PRIMARY KEY (`id`), KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Posté : 05 nov. 2005, 21:29
par pascaltje
Comme tu veux, mais je rappelle que ça marchait avant sur easyphp:

Code : Tout sélectionner

CREATE TABLE `lapage_mp` ( `id` mediumint(9) NOT NULL auto_increment, `sujet` varchar(255) NOT NULL, `message` longtext NOT NULL, `date` varchar(255) NOT NULL, `a` varchar(255) NOT NULL, `de` varchar(255) NOT NULL, PRIMARY KEY (`id`), KEY `id` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
tu as un champ qui s'appelle date, et je pense que c'est un mot clé en SQL. change le nom en "ladate" par exemple, ça devrait mieux marcher.

sinon, quel est le message d'erreur?

A+

Pascal

Posté : 05 nov. 2005, 21:33
par alexbad
La requête suivante:

Code : Tout sélectionner

INSERT INTO `lapage_mp` ( `id` , `sujet` , `message` , `ladate` , `a` , `de` ) VALUES ( '', 'blablabla', 'blablabla', 'blablabla', 'blablabla', 'blablabla' )
affiche cette erreur dans phpMyAdmin

Code : Tout sélectionner

MySQL a répondu:Documentation #1366 - Incorrect integer value: '' for column 'id' at row 1
Et comme tu as vu, j'ai remplacé date par ladate et pourtant ça a rien changé

Posté : 05 nov. 2005, 21:36
par pascaltje
dans auto_increment il y a auto qui veut dire automatique; ça veut que c'est créé automatiquement, donc tu ne dois rien préciser, même pas le champ, try this:

Code : Tout sélectionner

INSERT INTO `lapage_mp` ( `sujet` , `message` , `ladate` , `a` , `de` ) VALUES ( 'blablabla', 'blablabla', 'blablabla', 'blablabla', 'blablabla' )
pour le champ date, c'est mieux de ne changer de nom car sinon tu devras toujours utiliser les `` autour du nom de champ, ce qui est pas hyper cool.

A+

Pascal

Posté : 05 nov. 2005, 21:37
par alexbad
Ça y est, t'es vraiment un As. Le pire, c'est que la requête que j'avais envoyé, je l'avais copié de phpMyAdmin

Merci beaucoup