본문 바로가기
MySql

MySQL PHP/MySQL Insert null values

by 베이스 공부 2020. 10. 14.
반응형

일부 PHP / MySQL 코드로 어려움을 겪고 있습니다. 1 테이블에서 읽고 일부 필드를 변경 한 다음 다른 테이블에 쓰는 중입니다. 데이터베이스에 null을 삽입하려고 할 때 삽입하고 배열 값 중 하나가 null이면 아무 일도 일어나지 않습니다 (필드에 null 값이 허용됨). 다음과 같이 보입니다.

$results = mysql_query("select * from mytable");
while ($row = mysql_fetch_assoc($results) {
    mysql_query("insert into table2 (f1, f2) values ('{$row['string_field']}', {$row['null_field']});
}

모든 행에 null 값이있는 것은 아니며 내 쿼리에는 null 일 수도 있고 아닐 수도있는 더 많은 필드와 2 개의 열이 있습니다.

 

해결 방법

 

이것은 준비된 문장 을 사용하면 실제로 문제를 해결할 수있는 한 가지 예입니다.

MySQL에서 null 값을 삽입하려면 INSERT 시간에 지정하거나 추가 분기가 필요한 필드를 그대로 두어야합니다.

INSERT INTO table2 (f1, f2)
  VALUES ('String Value', NULL);

그러나 해당 필드에 값을 삽입하려면 이제 코드를 분기하여 작은 따옴표를 추가해야합니다.

INSERT INTO table2 (f1, f2)
  VALUES ('String Value', 'String Value');

준비된 진술이 자동으로 수행됩니다. 그들은 string (0) "" null 의 차이점을 알고 있고 적절하게 쿼리를 작성합니다.

$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)");
$stmt->bind_param('ss', $field1, $field2);

$field1 = "String Value";
$field2 = null;

$stmt->execute();


 

참조 페이지 https://stackoverflow.com/questions/5329542

 

 

반응형

댓글