par
bzaume » 18 nov. 2005, 00:17
Bon, en fait, j'ai parlé sans réfléchir : pour que l'insertion fonctionne avec MySQL 5 (onglet "Insérer"), il faut modifier le fichier
my.ini : dans la section
Code : Tout sélectionner
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" (ligne 86 environ),
il suffit de supprimer
ce qui donne :
Code : Tout sélectionner
# Set the SQL mode to strict
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
et là, ça marche comme avec MySQL 4.1 (après avoir redémarré mysld) : les auto-incréments sont respectés, les chaînes vides en tant que valeur par défaut également.
Pour plus de précisions, voir
http://dev.mysql.com/doc/refman/5.0/fr/ ... -mode.html
Pas très propre, mais ça évite de saisir explicitement le numéro d'auto-incrément.
A noter - mais cela a déjà été dit - que ce problème ne se pose QUE dans phpmyadmin, et uniquement lorsqu'on cherche à ajouter des tuples en passant par l'onglet "Insérer" ; par contre, toute commande SQL INSERT, que ce soit dans la fenêtre SQL de phpmyadmin ou dans un script PHP, n'impose absolument pas de saisir la valeur des champs ayant une valeur par défaut, dont l'index auto-incrémenté. Mais il est vrai que cette façon de saisir des tuples, en passant par l'onglet "Insérer", est bien pratique...
Bon, en fait, j'ai parlé sans réfléchir : pour que l'insertion fonctionne avec MySQL 5 (onglet "Insérer"), il faut modifier le fichier [b]my.ini[/b] : dans la section
[code]# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"[/code] (ligne 86 environ),
il suffit de supprimer
[code]STRICT_TRANS_TABLES[/code]
ce qui donne :
[code]# Set the SQL mode to strict
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"[/code]
et là, ça marche comme avec MySQL 4.1 (après avoir redémarré mysld) : les auto-incréments sont respectés, les chaînes vides en tant que valeur par défaut également.
Pour plus de précisions, voir [url]http://dev.mysql.com/doc/refman/5.0/fr/server-sql-mode.html[/url]
Pas très propre, mais ça évite de saisir explicitement le numéro d'auto-incrément.
A noter - mais cela a déjà été dit - que ce problème ne se pose QUE dans phpmyadmin, et uniquement lorsqu'on cherche à ajouter des tuples en passant par l'onglet "Insérer" ; par contre, toute commande SQL INSERT, que ce soit dans la fenêtre SQL de phpmyadmin ou dans un script PHP, n'impose absolument pas de saisir la valeur des champs ayant une valeur par défaut, dont l'index auto-incrémenté. Mais il est vrai que cette façon de saisir des tuples, en passant par l'onglet "Insérer", est bien pratique...