Imposta il valore su NULL in MySQL

Voglio che un valore sia impostato su NULL se nulla viene inserito nella casella di testo nel modulo che sto inviando. Come posso farlo accadere? Ho provato a inserire 'NULL' ma questo aggiunge solo la parola NULL nel campo.

Non sono sicuro di quale codice dovrei fornire per questo, sto solo scrivendo una query UPDATE.

Non inserire NULL tra virgolette nella tua dichiarazione di aggiornamento. Questo dovrebbe funzionare:

 UPDATE table SET field = NULL WHERE something = something 

Probabilmente stai citando “NULL”. NULL è una parola riservata in MySQL e può essere inserita / aggiornata senza virgolette:

 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)"; 

se metti 'NULL' nella tua query, allora stai solo inserendo una stringa di 4 caratteri. Senza le virgolette, NULL è il valore null effettivo.

Dovresti inserire null , non la stringa di 'NULL' .

Usa NULL (senza le virgolette attorno ad esso).

 UPDATE users SET password = NULL where ID = 4 

Supponendo che la colonna consenta un’impostazione nulla,

 $mycolupdate = null; // no quotes 

dovrebbe fare il trucco

Le risposte fornite qui sono buone ma stavo ancora cercando di pubblicare NULL e non zero nella tabella mysql.

Alla fine ho notato che il problema era nella query di inserimento che stavo usando

  $quantity= "NULL"; $itemname = "TEST"; 

Fin qui tutto bene.

La mia domanda di inserimento era sbagliata.

  mysql_query("INSERT INTO products(quantity,itemname) VALUES ('$quantity','$itemname')"); 

Ho corretto la query da leggere.

  mysql_query("INSERT INTO products(quantity,itemname) VALUES ('".$quantity."','$itemname')"); 

Quindi la quantità $ è al di fuori della stringa principale. La mia tabella sql ora accetta di registrare quantità nulle invece di 0

Il problema che hai riscontrato è molto probabilmente perché mysql distingue tra null scritto in maiuscolo e null scritto in minuscolo.

Quindi se hai usato un’istruzione update con null, non funzionerebbe. Se lo si imposta su NULL, funzionerebbe correttamente.

Grazie.