MySQLで値をNULLに設定します


132

NULL送信するフォームのテキストボックスに何も入力されていない場合に値を設定する必要があります。どうすればこれを実現できますか?私は挿入しようとしました'NULL'が、これは単語NULLをフィールドに追加するだけです。

これに提供するコードがわからないので、UPDATEクエリを作成しています。


12
あなたは言葉を挿入する必要がありますnull なし。..引用符
マイク・クリステンセン

回答:


268

NULL更新ステートメントの中に引用符を入れないでください。これはうまくいくはずです:

UPDATE table SET field = NULL WHERE something = something

ここでも同じ:Static analysis: 1 errors were found during analysis. Unrecognized keyword. (near "NULL" at position 35) SQL query: UPDATE programs SET flash = NULL。-更新:WHERE問題を引き起こしたのは次の状態でした!
Kai Noack

16

あなたはおそらく「NULL」を引用しています。NULLはMySQLの予約語であり、引用符なしで挿入/更新できます。

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

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

問題は、彼がNULLの代わりに 'NULL'を使用していることだと思います。
アルファシン

しかし、いくつかの注意を払って、これがたく、被ヌル空のフィールドを既存の修正ができます:P
Erenorラパス

6
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値です。



5

nullの文字列ではなく、を挿入する必要があり'NULL'ます。



2

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

最後に、問題は使用していた挿入クエリにあることに気付きました

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

ここまでは順調ですね。

挿入クエリが悪かった。

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

クエリを修正して読みました。

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

したがって、$ quantityはメイン文字列の外にあります。私のSQLテーブルは、0ではなくnull数量を記録するようになりました


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

2

あなたが持っていた問題は、mysqlが大文字で書かれたnullと小文字で書かれたnullを区別するために最も可能性が高いです。

したがって、nullのあるupdateステートメントを使用した場合、機能しません。NULLに設定すると、正常に動作します。

ありがとう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.