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 n'ajoute que Word 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.
Ne mettez pas NULL
entre guillemets dans votre instruction de mise à jour. Cela devrait fonctionner:
UPDATE table SET field = NULL WHERE something = something
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;
UPDATE MyTable
SET MyField = NULL
WHERE MyField = ''
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.
Vous devez insérer null
, pas la chaîne de 'NULL'
.
Utilisez NULL
(sans les guillemets).
UPDATE users SET password = NULL where ID = 4
En supposant que la colonne autorise un paramètre nul,
$mycolupdate = null; // no quotes
devrait faire l'affaire
Les réponses données ici sont bonnes mais je luttais toujours pour publier NULL et non zéro dans la table mysql.
Enfin, j'ai noté que le problème était dans la requête d'insertion que j'utilisais
$quantity= "NULL";
$itemname = "TEST";
Jusqu'ici tout va bien.
Ma requête d'insertion était mauvaise.
mysql_query("INSERT INTO products(quantity,itemname)
VALUES ('$quantity','$itemname')");
J'ai corrigé la requête à lire.
mysql_query("INSERT INTO products(quantity,itemname)
VALUES ('".$quantity."','$itemname')");
Donc, la quantité $ est en dehors de la chaîne principale. Ma table SQL accepte maintenant d'enregistrer une quantité nulle au lieu de 0
Le problème que vous avez eu est probablement dû au fait que mysql fait la distinction entre null écrit en majuscules et null écrit en minuscules.
Donc, si vous utilisiez une instruction update avec null, cela ne fonctionnerait pas. Si vous le définissez sur NULL, cela fonctionnerait bien.
Merci.