2009-08-26 12 views
16

クラス定数は、結合にはPDO::PARAM_BOOLPDO::PARAM_INTおよびPDO::PARAM_STRしかカバーしていないようです。小数点/浮動小数点/ 2重の値を文字列としてバインドするだけですか、それともそれらを扱う良い方法はありますか?PHPでdecimal/double/floatの値をPDOにバインドする最も良い方法は何ですか?

MySQLiではdouble型の 'd'型が許可されていますが、他の多くの点でPDOには同等の機能がないことは驚きです。

答えて

10

AFAIK PDO :: PARAM_STRは道のりです。

+0

ありがとう!私はおそらくこれを行い、自分自身を検証するつもりです。 – Rob

+3

知らない人には、構文は次のようになります: '$ sth-> bindParam( ':keyword'、$ keyword、PDO :: PARAM_STR);' – tylerl

-3

実際にPDOを使用する場合は、PARAM_INTとして入力する必要がありますが、doubleの指定は使用しません。

PDOタイプを指定するためのオプションのパラメータです。

doublePDOのタイプを設定しない方がよいでしょう。

+0

INTとしてバインドして精度を失いたくないと思っていますが、タイプを指定しなかったことについては良い点があります。 – Rob

+11

実際には、param_TYPEが指定されない場合、PARAM_STRが仮定されます。 – Xeoncross

+0

整数としてバインドする必要はありませんし、バインドしないでください。データが失われます。代わりに@AlixAxelの答えをお読みください。 – PhoneixS

0

あなたはPDO :: PARAM_STRを使用する必要がありますが、SQLiteや他のエンジンの場合、これは予測できない動作をする可能性があります。 1つの例については、この問題を参照してください。SQLite HAVING comparison error

関連する問題