MySQL 및 PHP - 빈 문자열 대신 NULL을 삽입합니다.
데이터베이스에 변수를 삽입하는 MySQL 문이 있습니다.최근 옵션($intLat, $intLang)인 2개의 필드를 추가했습니다.이 값을 입력하지 않으면 빈 문자열을 값으로 전달합니다.명시적 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)";
이 정도면 충분합니다.
INSERT INTO table VALUES ('', NULLIF('$date',''))
(처음''
[ Increments id ]필드)
값을 전달하지 않으면 기본값에 대해 null이 표시됩니다.
그러나 NULL이라는 단어는 따옴표 없이 전달할 수 있습니다.
필요한 것은 다음과 같습니다.$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을 SQL에 추가하고 0이나 빈 문자열이 아닌 다음 항목에 NULL을 추가하려는 경우:
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"로 추가해야 합니다. 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 문자열로 변경합니다.
예를 들어 다음과 같이 할 수 있습니다.
UPDATE `table` SET `date`='', `newdate`=NULL WHERE id='$id'
무슨 이유에선지, 라두의 해결책은 나한테는 통하지 않을 거야.다음 표현을 사용했을 때:
$query = "INSERT INTO uradmonitor (db_value1, db_value2) VALUES (".
(($val1=='')?"NULL":("'".$val1."'")) . ", ".
(($val2=='')?"NULL":("'".$val2."'")) .
")";
따옴표 없이 null 대신 'squots'(따옴표 포함)가 삽입되어 정수 대신 문자열이 되었습니다.그래서 마침내 시도했다:
$query = "INSERT INTO uradmonitor (db_value1, db_value2) VALUES (".
(($val1=='')? :("'".$val1."'")) . ", ".
(($val2=='')? :("'".$val2."'")) .
")";
공백으로 인해 쿼리에 올바른 늘(따옴표 없음)이 삽입되었습니다.
2022 | PHP 7.3 | MySQL 5.7
Rocket Hazmat의 대답은 끈으로 "NULL"을 줍니다.그래서 다음과 같이 변경합니다.
$intLat = !empty($intLat) ? "'$intLat'" : NULL;
$intLng = !empty($intLng) ? "'$intLng'" : NULL;
언급URL : https://stackoverflow.com/questions/4620391/mysql-and-php-insert-null-rather-than-empty-string
'source' 카테고리의 다른 글
Java에서 숫자를 거듭제곱하다 (0) | 2022.09.29 |
---|---|
팬더 데이터 프레임을 NumPy 어레이로 변환 (0) | 2022.09.29 |
Python을 사용한 디렉토리 반복 (0) | 2022.09.28 |
PHP는 클래스 이름에서 개체를 문자열로 인스턴스화할 수 있습니까? (0) | 2022.09.28 |
int를 부호 없는 바이트로 변환하고 되돌리는 방법 (0) | 2022.09.28 |