Auto increment ne fonctionne pas

ViPHP
ViPHP | 649 Messages

05 nov. 2005, 21:14

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

ViPHP
ViPHP | 1024 Messages

05 nov. 2005, 21:17

ç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

ViPHP
ViPHP | 649 Messages

05 nov. 2005, 21:19

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

Eléphanteau du PHP | 43 Messages

05 nov. 2005, 21:24

il faut que tu lui indique 'NULL' dans l'INSERT pour que ca marche

ViPHP
ViPHP | 1024 Messages

05 nov. 2005, 21:25

fais voir la structure de la table (avec les infos sur les champs), ça devrait donner une piste.

A+

Pascal

ViPHP
ViPHP | 649 Messages

05 nov. 2005, 21:27

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

ViPHP
ViPHP | 1024 Messages

05 nov. 2005, 21:29

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

ViPHP
ViPHP | 649 Messages

05 nov. 2005, 21:33

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

ViPHP
ViPHP | 1024 Messages

05 nov. 2005, 21:36

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

ViPHP
ViPHP | 649 Messages

05 nov. 2005, 21:37

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