問題:
クエリ結果がすべての列を文字列型として返すで整数列と数値列が定義されているにもかかわらず、
複雑さ:
この課題は、ドライバー実装の制限から生じます。一部のドライバーは、数値型を PHP 整数または数値として返すことをサポートしていないため、データベースのデータ型と PHP 表現の間に不一致が生じます。
解決策:
これを解決する鍵問題は、mysqlnd ドライバーが PHP に使用されていることを確認することにあります。 mysqlnd は、数値型を正しく返すために必要なサポートを提供する MySQL ネイティブ ドライバーです。
mysqlnd のインストール方法:
Ubuntu システムの場合:
mysqlnd が使用されているかどうかを確認します:
インストール後、実行しますphp -i を使用して、mysqlnd が使用されていることを確認します。出力で次の行を探します:
PDO Driver for MySQL => enabled Client API version => mysqlnd 5.0.10 - 20111026 -
重要な PDO 設定:
数値を適切に処理するには、2 つの PDO 設定が重要です:
これらのフラグを設定すると、クエリ結果は期待どおりに整数列と数値列を返すようになります。戻り値の例は次のとおりです:
object(stdClass)[915] public 'integer_col' => int 1 public 'double_col' => float 1.55 public 'float_col' => float 1.5 public 'decimal_col' => string '1.20' (length=4) public 'bigint_col' => string '18446744073709551615' (length=20)
以上がMySQL の数値列が PHP の整数および数値として返されることを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。