반응형
일부 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
반응형
'MySql' 카테고리의 다른 글
MySQL PHP mysqli query to check if a row exist (0) | 2020.10.15 |
---|---|
MySQL 데이터베이스에서 사용자 이름과 암호가 일치하는지 확인 (0) | 2020.10.15 |
MySQL INT 열에 NULL 값 삽입 (0) | 2020.10.14 |
MySQL SQL 쿼리에서 LEFT JOIN의 순서를 정렬하는 방법은 무엇입니까? (0) | 2020.10.14 |
MySQL max () + 1 문제로 값 삽입 및 설정 (0) | 2020.10.14 |
댓글