2012-02-16 38 views
82

投稿しているフォームのテキストボックスに何も入力されていない場合、値をNULLに設定します。これをどうすればいいのですか? 私は'NULL'を挿入しようとしましたが、これは単語にNULLを追加するだけです。MySQLで値をNULLに設定する

私はこれに対してどのようなコードを提供するべきかわかりません。私はちょうどUPDATEクエリを書いています。

+9

引用符を使わないで 'null' *を挿入する必要があります。 –

答えて

176

NULLを引用符で囲んではいけません。これは動作するはずです:

UPDATE table SET field = NULL WHERE something = something 
+3

Huh。私はそれを試みたと断言することができた。たぶん私は同時にいくつかの間違いがあったかもしれません。ありがとう! – muttley91

+0

同じです: '静的解析:解析中に1つのエラーが見つかりました。認識できないキーワード。 (位置35の「NULL」の近く)SQLクエリ:UPDATEプログラムSET flash = NULL'。 - 更新:問題を引き起こしたのは次のWHERE条件でした! –

3

NULL(引用符は不要です)を使用してください。

UPDATE users SET password = NULL where ID = 4 
9
UPDATE MyTable 
SET MyField = NULL 
WHERE MyField = '' 
+0

私は問題が彼が使用していると思う:NULLの代わりに 'NULL'。 – alfasin

+0

しかし、これはいくつかの注意を払って、既存のnull空の空のフィールドを修正する可能性があります:P –

15

おそらく 'NULL' を引用しています。 NULLは、MySQLの予約語で、挿入/引用符なしで更新することができます。

INSERT INTO user (name, something_optional) VALUES ("Joe", NULL); 
UPDATE user SET something_optional = NULL; 
5
if (($_POST['nullfield'] == 'NULL') || ($_POST['nullfield'] == '')) { 
    $val = 'NULL'; 
} else { 
    $val = "'" . mysql_real_escape_string($_POST['nullfield']) . "'"; 
} 

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

あなたのクエリに'NULL'を入れた場合、その後、あなただけの4文字の文字列を挿入しています。引用符を使用しない場合は、NULLが実際のNULL値です。

4

nullを挿入し、'NULL'の文字列を挿入しないでください。列を想定し

2

がnullに設定することができる、

$mycolupdate = null; // no quotes 

トリックに

+1

...後で '$ mycolupdate'を文字列にキャストしないと仮定します。 –

0

を行う必要があり、ここで与えられた答えは良いですが、私はまだmysqlのテーブルにNULLではなく、ゼロを投稿するのに苦労しました。

は、最後に私はこの問題は、私がこれまでのところは良い

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

を使用していたINSERTクエリで指摘しました。

挿入クエリが不正でした。

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

訂正されたクエリを読み取る。

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

したがって、$数量はメインストリングの外側です。 私のsqlテーブルが0の代わりにヌル値を記録するようになりました

+0

廃止予定のmysql_機能を放棄して、mysqliまたは私の好みのPDOに切り替えることもお勧めします。 – muttley91

1

mysqlは大文字で書かれたヌルと小文字で書かれたヌルを区別している可能性が高いです。

nullを指定してupdate文を使用した場合、動作しません。それをNULLに設定するとうまくいくはずです。

ありがとうございました。

関連する問題