PHP を使用して MySQL データベースにデータを挿入する場合、Null 値を挿入しようとすると問題が発生する可能性があります。デフォルトでは、配列内の値に null が含まれる場合、PHP は数値フィールドに null の代わりに空の文字列またはゼロを挿入します。
この例では:
<code class="php">$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']}); }</code>
If $row[' null_field'] に null が含まれている場合は、代わりに 0 として挿入されます。この問題に対処するには、プリペアド ステートメントを使用できます。
プリペアド ステートメントを使用すると、クエリで null 値を明示的に指定できます。また、エスケープとバインドも自動的に処理されるため、インジェクションの脆弱性のリスクが軽減されます。
MySQLi でプリペアド ステートメントを使用する方法は次のとおりです。
<code class="php">$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)"); $stmt->bind_param('ss', $field1, $field2); $field1 = "String Value"; $field2 = null; $stmt->execute();</code>
この例では、
$field2 が null の場合、データベースに null として挿入されます。このメソッドは null 値を正しく処理し、空の文字列やゼロ値として扱われないようにします。
以上がPHP を使用して MySQL データベースに Null 値を挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。