par
Hubert Roksor » 23 juin 2006, 18:53
Sans vouloir remuer le couteau dans la plaie, donner une
chaîne vide pour un champs auto-incrémenté n'était pas une très bonne idée dès le départ

Parfois on se moque de moi parce que je suis extrêmement strict sur la façon de programmer, mais sur le long terme ça évite ce genre de problèmes.
Idéalement, je te conseillerais de modifier tes requêtes comme le suggère zeus. Tu peux aussi remplacer
'' par
NULL ou même
0. Sinon, voici d'autres pistes, par ordre de facilité:
- changer le mode SQL de ton serveur pour enlever STRICT_ALL_TABLES et STRICT_TRANS_TABLES. Ça devrait changer l'erreur en warning
- créer un TRIGGER (BEFORE INSERT) pour remplacer la chaîne vide par 0 ou NULL
J'en avais une autre mais elle m'est sortie de tête

Sans vouloir remuer le couteau dans la plaie, donner une [b]chaîne[/b] vide pour un champs auto-incrémenté n'était pas une très bonne idée dès le départ :roll: Parfois on se moque de moi parce que je suis extrêmement strict sur la façon de programmer, mais sur le long terme ça évite ce genre de problèmes.
Idéalement, je te conseillerais de modifier tes requêtes comme le suggère zeus. Tu peux aussi remplacer [b]''[/b] par [b]NULL[/b] ou même [b]0[/b]. Sinon, voici d'autres pistes, par ordre de facilité:
[list][*]changer le [url=http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html]mode SQL[/url] de ton serveur pour enlever STRICT_ALL_TABLES et STRICT_TRANS_TABLES. Ça devrait changer l'erreur en warning
[*]créer un TRIGGER (BEFORE INSERT) pour remplacer la chaîne vide par 0 ou NULL[/list]
J'en avais une autre mais elle m'est sortie de tête :o