J'ai le même problème.
J'ai un champ qui peut soit être NULL soit avoir une chaine de caractère. Je récupère les données dans un champ text :
<input type="text" value=NULL name="unite">
Je traite rapido (je sais faudra que je protège mais pour l'instant c'est en interne) :
Et je fais ma requête SQL.
En fait si je fais :
$mysql->requete('INSERT INTO Equipement(libelle_famille, code_famille, type_d_equipement, presence, dv_th_ans, taux_de_renouvellement, type_de_batiment, cout_euro_ht, unite) VALUES("'.$libelle_famille.'", "'.$code_famille.'", "'.$type_d_equipement.'", "'.$presence.'", "'.$dv_th_ans.'", "'.$taux_de_renouvellement.'", "'.$type_de_batiment.'", "'.$cout_euro_ht.'", "'.$unite.'")');
Quand c'est NULL, ça me met la chaine de caractère NULL puisque ça renvoie "NULL". Par contre quand c'est une chaine de caractère pas de soucis.
J'ai donc essayé :
$mysql->requete('INSERT INTO Equipement(libelle_famille, code_famille, type_d_equipement, presence, dv_th_ans, taux_de_renouvellement, type_de_batiment, cout_euro_ht, unite) VALUES(\''.$libelle_famille.'\', \''.$code_famille.'\', \''.$type_d_equipement.'\', \''.$presence.'\', \''.$dv_th_ans.'\', \''.$taux_de_renouvellement.'\', \''.$type_de_batiment.'\', \''.$cout_euro_ht.'\', '.$unite.')');
Dans ce cas, quand unite est NULL on enregistre bien NULL mais si c'est une chaine de caractère, là ça bug puisque je n'ai pas les quote nécessaires.
Y a t'il une solution et quelle est-elle ?
Merci et désolé du déterrage mais je cherche sur le net et j'ai trouvé ce post tout à fait à propos.
Partager