MySQL'de değeri NULL olarak ayarlayın


134

NULLGönderdiğim formdaki metin kutusuna hiçbir şey girilmezse bir değerin ayarlanmasını istiyorum . Bunun olmasını nasıl sağlayabilirim? Eklemeyi denedim 'NULL'ama bu sadece kelimeyi NULLalana ekliyor .

Bunun için hangi kodu vermem gerektiğinden emin değilim, sadece bir UPDATE sorgusu yazıyorum.


12
Sözcüğü tırnak işaretleri null olmadan eklemeniz gerekecek ..
Mike Christensen

Yanıtlar:


270

NULLGüncelleme ifadenize tırnak işareti koymayın . Bu çalışmalı:

UPDATE table SET field = NULL WHERE something = something

Aynen: Static analysis: 1 errors were found during analysis. Unrecognized keyword. (near "NULL" at position 35) SQL query: UPDATE programs SET flash = NULL. - Güncelleme: WHERESoruna neden olan aşağıdaki koşuldu!
Kai Noack

16

Muhtemelen "NULL" dan alıntı yapıyorsunuz. NULL, MySQL'de ayrılmış bir kelimedir ve tırnak işaretleri olmadan eklenebilir / güncellenebilir:

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

10
UPDATE MyTable
SET MyField = NULL
WHERE MyField = ''

Sanırım sorun, NULL yerine 'NULL' kullanması.
Nir Alfasi

Ama bazı dikkatle bu wanna-be-boş boş alanları mevcut düzeltmek: P
Erenor Paz

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

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

Eğer koyarsanız 'NULL'Sorgunuzun içine, o zaman sadece 4 karakter dizesini ekleyerek ediyoruz. Tırnak işaretleri olmadan, NULLgerçek boş değerdir.


5

Kullanın NULL(etrafındaki tırnaklar olmadan).

UPDATE users SET password = NULL where ID = 4


3

Sütunun boş bir ayara izin verdiğini varsayarsak,

$mycolupdate = null; // no quotes

hile yapmalı


1
... $mycolupdatedaha sonraki bir aşamada diziye atmayacağınızı varsayarak .
Álvaro González

2

Burada verilen cevaplar iyi ama hala mysql tablosunda sıfır değil, NULL göndermek için mücadele ediyordum.

Sonunda sorunun, kullandığım sorgu ekleme kısmında olduğunu fark ettim

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

Çok uzak çok iyi.

Ekleme sorgum kötüydü.

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

Okumak için sorguyu düzelttim.

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

Yani $ miktar, ana dizenin dışında. Sql tablom artık 0 yerine boş miktar kaydetmeyi kabul etti


Ayrıca, kullanımdan kaldırılan mysql_ işlevlerini terk etmenizi ve mysqli'ye veya tercihim PDO'ya geçmenizi öneririm.
muttley91

2

Karşılaştığınız problem büyük olasılıkla mysql'nin büyük harflerle yazılmış boş ile küçük harflerle yazılmış boş değeri birbirinden ayırmasıdır.

Yani null ile bir update deyimi kullandıysanız, işe yaramaz. NULL olarak ayarlarsanız, iyi çalışır.

Teşekkürler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.