데이터베이스에 몇 가지 변수를 삽입하는 MySQL 문이 있습니다. 최근에 선택적 필드 ($ intLat, $ intLng)를 추가했습니다. 지금이 값을 입력하지 않으면 빈 문자열을 값으로 전달합니다. 명시 적 NULL 값을 MySQL에 어떻게 전달합니까 (비어있는 경우)?
$query = "INSERT INTO data (notes, id, filesUploaded, lat, lng, intLat, intLng)
VALUES ('$notes', '$id', TRIM('$imageUploaded'), '$lat', '$long',
'$intLat', '$intLng')";
mysql_query($query);
답변
MySQL에 NULL을 전달하려면 그렇게하면됩니다.
INSERT INTO table (field,field2) VALUES (NULL,3)
따라서 코드에서 확인 if $intLat, $intLng
은 또는 대신 empty
사용하십시오 .NULL
'$intLat'
'$intLng'
$intLat = !empty($intLat) ? "'$intLat'" : "NULL";
$intLng = !empty($intLng) ? "'$intLng'" : "NULL";
$query = "INSERT INTO data (notes, id, filesUploaded, lat, lng, intLat, intLng)
VALUES ('$notes', '$id', TRIM('$imageUploaded'), '$lat', '$long',
$intLat, $intLng)";
답변
값을 전달하지 않으면 기본값으로 null이 표시됩니다.
그러나 따옴표없이 NULL이라는 단어를 전달할 수 있습니다.
답변
이것은 나를 위해 잘 작동합니다.
INSERT INTO table VALUES ('', NULLIF('$date',''))
(첫 번째 ''
증가 ID 필드)
답변
당신이해야 할 일은 $variable =NULL;
// 그리고 그것을 삽입 쿼리에 전달하는 것입니다. 이것은 mysql db에 값을 NULL로 저장합니다.
답변
일반적으로 다음과 같이 PHP에서 mySQL에 일반 값을 추가합니다.
function addValues($val1, $val2) {
db_open(); // just some code ot open the DB
$query = "INSERT INTO uradmonitor (db_value1, db_value2) VALUES ('$val1', '$val2')";
$result = mysql_query($query);
db_close(); // just some code to close the DB
}
값이 비어 있거나 널 ($ val1 == “”또는 $ val1 == NULL)이고 NULL을 SQL에 추가하고 0 또는 빈 문자열이 아닌 다음 항목에 추가하려는 경우 :
function addValues($val1, $val2) {
db_open(); // just some code ot open the DB
$query = "INSERT INTO uradmonitor (db_value1, db_value2) VALUES (".
(($val1=='')?"NULL":("'".$val1."'")) . ", ".
(($val2=='')?"NULL":("'".$val2."'")) .
")";
$result = mysql_query($query);
db_close(); // just some code to close the DB
}
null은 ” ‘NULL'”이 아닌 “NULL”로 추가되어야합니다. 널이 아닌 값은 ” ‘”. $ val1. “‘”등으로 추가해야합니다.
이것이 도움이되기를 바라며, 일부 하드웨어 데이터 로거에 이것을 사용해야했습니다. 일부는 온도와 복사를 수집하고 다른 일부는 복사 만 수집했습니다. 온도 센서가없는 경우에는 명백한 이유로 0이 아닌 NULL이 필요했습니다 (0도 허용되는 온도 값입니다).
답변
쿼리는 다음과 같이 갈 수 있습니다.
$query = "INSERT INTO data (notes, id, filesUploaded, lat, lng, intLat, intLng)
VALUES ('$notes', '$id', TRIM('$imageUploaded'), '$lat', '$lng', '" . ($lat == '')?NULL:$lat . "', '" . ($long == '')?NULL:$long . "')";
mysql_query($query);
답변
쿼리를 작성하기 전에 변수를 확인하고 비어있는 경우 NULL 문자열로 변경하십시오.