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

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

Barbara Streisand
リリース: 2024-11-03 17:55:29
オリジナル
336 人が閲覧しました

How Can I Store True NULL Values in MySQLi Prepared Statements?

MySQLi プリペアド ステートメントへの真の NULL 値の保存

MySQLi 内のプリペアド ステートメントでは、NULL 値のデフォルトの動作は変換します。文字列の場合は空の文字列 ('')、整数の場合は 0 に変換されます。ただし、NULL 値を保持したい場合は、特定のアプローチを使用できます。

MySQL NULL Safe Operator の使用

真の NULL を格納するにはMySQLi プリペアド ステートメントの場合は、MySQL NULL セーフ演算子を使用する必要があります。

<=>
ログイン後にコピー

この演算子は、カラムが NULL と等しいかどうかが比較されることを保証します。例:

$price = NULL; // Note: Using php NULL without quotes
$stmt = $mysqli->prepare("SELECT id FROM product WHERE price &lt;=&gt; ?"); // Selects products with NULL prices
$stmt->bind_param($price);
ログイン後にコピー

この例では、クエリは価格列が NULL である製品を取得します。 NULL セーフ演算子がないと、NULL は空の文字列または 0 に等しくないため、クエリは結果を返しません。

次の PHP コードは、次のことを示します。準備されたステートメントで NULL セーフ演算子を使用する方法:

$firstName = NULL;
$lastName = "Doe";

$stmt = $mysqli->prepare("UPDATE users SET first_name &lt;=&gt; ?, last_name = ?");
$stmt->bind_param("ss", $firstName, $lastName);
$stmt->execute();
ログイン後にコピー

このクエリは、指定された姓でユーザーを更新し、名の NULL 値を保持します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート