ホームページ >データベース >mysql チュートリアル >MySQLi プリペアドステートメントで真の NULL 値を保存するにはどうすればよいですか?

MySQLi プリペアドステートメントで真の NULL 値を保存するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-04 12:06:02523ブラウズ

How to Preserve True NULL Values in MySQLi Prepared Statements?

MySQLi プリペアド ステートメントでの NULL 値の操作

MySQLi プリペアド ステートメントを使用する場合、NULL 値の処理は少し難しい場合があります。デフォルトでは、MySQLi は NULL 値を文字列の場合は空の文字列 ('')、整数の場合は 0 に変換します。ただし、実際の NULL 値を保存したいシナリオもあります。

真の NULL 値の保存

MySQLi プリペアド ステートメントに真の NULL 値を保存するには、次のようにします。 MySQL NULL Safe 演算子 (<>=) を利用できます。この演算子を使用すると、NULL 値を正しく比較できます。

例:

<code class="php">$price = NULL;
$stmt = $mysqli->prepare("SELECT id FROM product WHERE price <> ?");
$stmt->bind_param('s', $price); // Bind the price as a string</code>

この例では、stmt は 'product' テーブルから行を選択します。 「価格」列は NULL です。 <>演算子は、NULL 値と非 NULL 値の両方をチェックするために使用され、NULL 比較を正確に処理できるようになります。

追加の注意事項:

  • NULL を使用する場合安全な演算子を使用するには、列のデータ型に基づいて正しいバインド形式を使用する必要があります。たとえば、NULL 整数を文字列型ではなく整数型としてバインドします。
  • NULL 以外の値で NULL セーフ演算子を使用する場合は注意してください。 NULL 以外の値と一緒に使用すると、予期しない結果が生じる可能性があります。

以上がMySQLi プリペアドステートメントで真の NULL 値を保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。