PHP/MySQL での Null 値の挿入
ある MySQL テーブルから別の MySQL テーブルにデータをインポートする場合、Null 値を挿入すると問題が発生する可能性があります。配列値が null で、対応するデータベース フィールドで 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>
解決策:プリペアド ステートメントの使用
プリペアド ステートメントは、NULL 値を挿入するための便利なソリューションを提供します。 MySQL は空の文字列 (''") と null 値を区別するため、生の SQL クエリを使用する場合は、明示的な null チェックと引用符が必要です。
ただし、プリペアド ステートメントを使用すると、MySQL はこれらの区別を自動的に処理し、null が保証されるようにします。 PHP データ型に関係なく、値は正しく挿入されます。
<code class="php">$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)"); $stmt->bind_param('ss', $field1, $field2); $field1 = "String Value"; $field2 = null; // Null value will be inserted as is $stmt->execute();</code>
プリペアド ステートメントの利点
したがって、PHP/ MySQL では、プリペアド ステートメントを使用することを強くお勧めします。これにより、コードが簡素化され、正確さが保証され、セキュリティとパフォーマンスの利点が追加されます。
以上がPHP でプリペアドステートメントを使用して MySQL に Null 値を挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。