Auto Increment des ID : du changement

Je viens de remarquer qu'un de mes scripts ne passait pas avec MySQL 5, la raison : Il n'acceptait pas un champ vide pour l'id, je m'explique.

Voici la requête que j'essayais de réaliser :
INSERT INTO mail (id, mail) VALUES ('', 'test');

et la méchante réponse de MySQL :
#1366 - Incorrect integer value: '' for column 'id' at row 1
(Il faut savoir que le champ ID est en auto_increment, d'ou cette requête)

La solution à été d'ignorer juste le champ id :
INSERT INTO mail (mail) VALUES ('test');

Si vous aviez l'habitude de faire comme avant sachez qu'avec MySQL 5 cela ne fonctionne plus.
Plus embêtant : phpMyAdmin utilisant le premier type de requête, il n'est plus possible d'insérer un enregistrement...

[Edit 8/12/2005 16h53] :
Si vous n'avez pas envie de refaire toute vos requêtes, vous pouvez remplacer les quotes par un NULL :

INSERT INTO mail (id, mail) VALUES (NULL, 'test');

Le problème de phpMyAdmin est réglé depuis la version 2.7.0

Commentaires

Ah ! Je cherchais une réponse à la question que je me posais, et voici que je vois la réponse dans ton billet !
Merci beaucoup pour avoir donné ce petit truc, de remplacer '' par NULL :))

C'est également l'info que je recherchais.
Merci.

Aïe !

L'est en vacances ton antispam ? :P

Voui, un peu comme mon blog, et moi :D !
J'ose pas regarder le nombre de spams...

on peut aussi régler le probleme sans toyucher au code en mettant sql-mode a '' ou TRDITIONAL dans le fichier my.ini

Laissez le vôtre !

Les commentaires pour ce billet sont fermés.

À propos du billet

lundi 21 novembre 2005 à 16:49

Classé dans :

5 commentaires

Navigation inter-billets