10 進データ型の PDO パラメーター バインディング
データベースで 10 進データ型を使用する場合、値の更新中に問題が発生する可能性があります。 PDO パラメータ バインディングを使用します。この記事では、10 進数データに対する PDO::PARAM の可用性について説明し、10 進数の値をバインドおよび更新するための回避策を示します。
PDO パラメーター バインディング
PDO (PHP データ オブジェクト)は、SQL クエリに安全かつ効率的に値を渡すことを可能にする便利なパラメータ バインディング メカニズムを提供します。さまざまなデータ型に対して、PDO は PDO::PARAM_INT、PDO::PARAM_STR などのさまざまなパラメーター バインディング定数を提供します。
10 進データに関しては、特定の PDO::PARAM 型はありません。 PDO::PARAM_INT は小数を含む整数値に対して機能するはずだと直感的に思うかもしれませんが、そうではありません。
10 進値をバインドするための回避策
バインドの解決策PDO の 10 進数値には PDO::PARAM_STR を使用します。このバインディング定数は、値が文字列としてキャストされることを期待します。これは、データベースに文字列として内部的に格納されるため、小数/浮動小数点に適しています。
10 進値のバインディングの例:
$update_decval->bindParam(':decval', $decval, PDO::PARAM_STR);
この変更により、PDO は $decval を文字列として扱い、小数点フィールドを正しく更新します。
小数点に PDO::PARAM_STR を使用する理由は何ですか?
10 進数は本質的には数値ですが、次の 2 つの理由により、データベースの内部で文字列として格納されます:
以上がPDO パラメーター バインディングで 10 進数値をバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。