149 votes

Définir la valeur sur NULL dans MySQL

Je souhaite qu'une valeur soit définie sur NULL si rien n'est placé dans la zone de texte du formulaire que je soumets. Comment puis-je y arriver? J'ai essayé d'insérer 'NULL' mais cela ajoute simplement le mot NULL dans le champ.

Je ne sais pas quel code je devrais fournir pour cela, je suis en train d'écrire une requête UPDATE.

297voto

Fosco Points 20573

Ne mettez pas NULL guillemets internes dans votre instruction de mise à jour. Cela devrait fonctionner:

 update table set field = NULL where something = something
 

20voto

Andrew Points 5253

Vous citez probablement «NULL». NULL est un mot réservé dans MySQL, et peut être inséré / mis à jour sans guillemets:

 INSERT INTO user (name, something_optional) VALUES ("Joe", NULL);
UPDATE user SET something_optional = NULL;
 

11voto

Bassam Mehanni Points 9118
UPDATE MyTable
SET MyField = NULL
WHERE MyField = ''

6voto

Marc B Points 195501
 if (($_POST['nullfield'] == 'NULL') || ($_POST['nullfield'] == '')) {
   $val = 'NULL';
} else {
   $val = "'" . mysql_real_escape_string($_POST['nullfield']) . "'";
}

$sql = "INSERT INTO .... VALUES ($val)";
 

si vous mettez 'NULL' dans votre requête, vous n'insérez qu'une chaîne de 4 caractères. Sans les guillemets, NULL est la valeur NULL réelle.

6voto

xdazz Points 85907

Vous devriez insérer null , pas la chaîne de 'NULL' .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X