PHP/MySQL 삽입 null 값
저는 PHP/MySQL 코드 때문에 어려움을 겪고 있습니다.한 테이블에서 읽고 일부 필드를 변경한 다음 다른 테이블에 씁니다. 삽입할 경우 아무 일도 일어나지 않으며 데이터베이스에 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 값을 삽입하려면 다음 위치에서 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();
필드를 벗어나 매개 변수를 바인딩하는 것을 잊지 않도록 합니다.당신과 함께 있을 이유가 없습니다.mysql
확장. 사용mysqli
대신 진술서가 준비되어 있습니다.당신은 고통의 세계를 구할 것입니다.
제 생각에 당신은 당신의 주변에 인용문이 필요합니다.{$row['null_field']}
,그렇게'{$row['null_field']}'
따옴표가 없는 경우 다음과 같은 삽입문이 나타나는 경우가 있습니다.insert into table2 (f1, f2) values ('val1',)
구문 오류입니다.
숫자 필드일 경우 위에서 몇 가지 테스트를 수행해야 하며 null_field에 값이 없으면 null로 명시적으로 설정합니다.
필드의 경우NULL
수용 가능합니다, 당신은 사용할 수 있습니다.var_export($var, true)
출력하다string
,integer
, 아니면NULL
문자 그대로의출력은 자동으로 추가되거나 생략되므로 따옴표로 둘러싸지 않습니다.
예를 들어,
mysql_query("insert into table2 (f1, f2) values ('{$row['string_field']}', ".var_export($row['null_field'], true).")");
언급URL : https://stackoverflow.com/questions/5329542/php-mysql-insert-null-values
'programing' 카테고리의 다른 글
PHP가 업로드된 파일을 임시 위치에 저장하는 이유와 이점은 무엇입니까? (0) | 2023.10.28 |
---|---|
Oracle에서 문자열의 단어 수를 계산하려면 어떻게 해야 합니까? (0) | 2023.10.28 |
Mysql: 레코드 수를 가져옵니다. (0) | 2023.10.28 |
post_date_gmt 대신 post_meta date 쿼리 (0) | 2023.10.23 |
Angularjs: iframe에서 다른 스코프를 호출합니다. (0) | 2023.10.23 |