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'을 사용하고 있다는 것입니다.
Nir Alfasi

그러나, 몇 가지주의, 이것은 싶어-수 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가 없으면 실제 널값입니다.


5

NULL따옴표없이 따옴표를 사용하십시오 .

UPDATE users SET password = NULL where ID = 4


3

열이 널 설정을 허용한다고 가정하면,

$mycolupdate = null; // no quotes

트릭을해야합니다


1
... $mycolupdate나중에 문자열로 캐스팅하지 않는다고 가정합니다 .
Álvaro González '10

2

여기에 주어진 대답은 좋지만 mysql 테이블에 NULL이 아닌 0을 게시하는 데 여전히 어려움을 겪고 있습니다.

마지막으로 문제는 내가 사용하고있는 삽입 쿼리에 있다고 언급했습니다.

   $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.