Probleme de requete SQL avec la valeur NULL
Bonjour a tous, c'est avec regret que je poste sur ce forum je n'ai pas pu trouver de réponse a mon probleme dans les fichiers de configurations de Apache et de php5
Je vous explique mon probleme, lors d'une requete envoyé par PHP (mysql_query();) toute requete contenant un champ vide, c'est a dire : '' (deux apostrophe); ne marche pas ! (aucune erreur ni rien) j'ai tenté en vain de modifier cela par NULL (, '', => , NULL, ) et cela remarche a nouveau.
Le probleme est que plusieurs CMS ou sites préconfig utilisent cette methode d'ecriture ('') donc je ne peut pas installer de CMS sans que ca plante :(
La configuration de mon Software :
Windows XP Pro SP1 (No firewall ni AV)
Apache 2.0.55.0
PHP 5.1.2.2
MySQL 5.0
- Pas de probleme sous PHP (librairie mysql et mysqli inclues)
- Pas de probleme de port sous MySQL
- Pas de probleme de connexion ni de requete (tant que elles sont sans champ vides) sous MySQL
Je désespere :cry: ...
Si quelqun connait ce probleme ou si quelqun connait par malheur un endroit ou ce probleme est expliqué... merci de me le faire savoir...
Merci a tout ceux qui porteront importance a mon cas ! Bonne journée
Re: Probleme de requete SQL avec la valeur NULL
En fait, ça me parrait assez normal: les valeurs chaîne vide ('') et NULL sont fondamentalement différentes.
A mon avis, ce que ton programme essaye de faire est encore différent: il essaye certainement d'insérer la valeur '' sur un champ entier en AUTO_INCREMENT (une clef, quoi!). Pendant longtemps, MySQL laissait passer ce genre d'erreur, mais plus maintenant. Ton programme a sans doute été développez à partir d'une ancienne version de MySQL.
Pour donner à MySQL le comportement d'une ancienne version, tu peux agir sur le 'mode' comme expliqué ici: http://dev.mysql.com/doc/refman/5.0/...-sql-mode.html
Par contre je ne vois pas de quel mode il pourrait s'agir.
Le mieux quand même, c'est d'écrire des requêtes SQL correctes, et de remplacer ça:
Code:
1 2
| INSERT INTO table(id, nom, valeur)
VALUE ('', 'pcaboche', 1234) ; |
par ça:
Code:
1 2
| INSERT INTO table(nom, valeur)
VALUE ('pcaboche', 1234) ; |
... mais tu n'as pas forcément la possibilité/l'envie de modifier ton appli.
Désolé, c'est peut-être pas très encourageant ce que j'écris... :?