PDO を使用した MySQL からの数値型の取得
問題:
データ型からデータを取得するときPDO を使用する MySQL データベースでは、整数値が文字列ではなく文字列として返されます。 PDO クラス属性 PDO::ATTR_STRINGIFY_FETCHES が false に設定されている場合でも数値型。
答え:
数値型についての問題:
データベースが数値を返すのは一般的です。文字列。これは、MySQL のデフォルト ドライバーなど、一部のデータベース ドライバーがすべての値を文字列として扱うためです。
文字列化の防止:
値が文字列として返されないようにするには、 MySQL ネイティブ ドライバー (mysqlnd) を使用する必要があります。このドライバーは、数値型を含むネイティブ データ型の取得をサポートしています。
mysqlnd の構成:
mysqlnd を使用するには、次の設定を PDO 接続オプション配列に追加する必要があります。
array( PDO::ATTR_EMULATE_PREPARES => false )
例コード:
$dsn = 'mysql:host=localhost;dbname=my_db'; $user = 'root'; $pass = 'password'; $pdo = new PDO($dsn, $user, $pass, array( PDO::ATTR_EMULATE_PREPARES => false ));
PDO::ATTR_EMULATE_PREPARES を false に設定すると、準備されたステートメントのエミュレーションがオフになり、mysqlnd が数値を正しいデータ型として取得できるようになります。
以上がMySQL の整数が PDO で文字列として返されるのはなぜですか? 数値として取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。