가능한 중복 :
Insert NULL variable into database값 또는 NULL을 삽입하는 방법?
나는 테이블 (로그)가 열 :
초 : BIGINT (20) UNSIGNED NULL
하여 IPAddress : VARCHAR (15) NULL
프로 불확실한 점은 변수에 값이 NULL이 지정 될 때마다 IPAddress 열의 빈 문자열로 열에 삽입되고 NULL이 아닌 Seconds 열의 0으로 열에 삽입된다는 것입니다.
//PHP 5.3.9//
if(isset($_POST['sec']))
$seconds = mysql_real_escape_string($_POST['sec']);
else
$seconds = NULL;
if(isset($_POST['ip']))
$ipaddress = mysql_real_escape_string($_POST['ip']);
else
$ipaddress = NULL;
$query = mysql_query("INSERT INTO log (Seconds, IPAddress) VALUES('".$seconds."', '".$ipaddress."')", $DbConnectionMyDb);
나는 모든 구글을 통해 검색 한하지만, 모든 해답은 이미 변수 $ 초 및 $의 IP이 NULL 여부가 될 것 여부를 알고 있다고 가정합니다. 제 경우에는 POST 데이터에 따라 다릅니다.
도움을 주시면 감사하겠습니다. 감사합니다. .
자리 표시 자 사용. 그들은 NULL 처리를 돌볼 것이고, 특정 못생긴보고 기능을 수동으로 호출 할 필요없이 * SQL 인젝션을 처리 할 것이다. (문제는' '''문자열이며, 'NULL'이 삽입물의 값으로 사용되지 않습니다.) –
문자열을 가져올 때 문자열이기 때문에 (mysql_real_escape_STRING) –
PHP mysql NULL과 다른 문자열을 NULL로 정의합니다. 당신의 쿼리에서 (IE의 if 문) 변수가 NULL인지 확인해야합니다. 그렇다면 VALUES (NULL, ' ". $ ipaddress."') 따옴표를 사용하지 않아야합니다. –