PDO の文字列化された数値の取得: 謎が明らかに
MySQL と一緒に PDO を利用しているときに、奇妙なことに遭遇したかもしれません。データベースでは数値型ではなく文字列表現が使用されるだけです。この苦境を解決する方法を詳しく見てみましょう。
失敗した属性変更
PDO の属性の領域内には、おそらくこの問題を解決する PDO::ATTR_STRINGIFY_FETCHES があります。ただし、MySQL ドライバー用に変更しようとすると、多くの場合、エラー メッセージが表示されます。
数値文字列: 標準?
驚くべきことに、データベース クエリから数値ではなく文字列を取得することは、あなたが思っているよりももっと普通のこと。この動作は、PDO のプリペアド ステートメントのエミュレーションのデフォルト設定が原因です。
解決策: エミュレーションのないプリペアド ステートメント
このジレンマを解決する鍵は、準備されたステートメントのエミュレーション。その方法は次のとおりです:
new PDO($dsn, $user, $pass, array( PDO::ATTR_EMULATE_PREPARES => false ))
エミュレーションをオフにすると、mysqlnd (PHP 5.3 以降で利用可能) がプリペアド ステートメントからネイティブ データ型 (整数を数値として含む) を返すことができるようになります。
価値のあるサイドノート
それは価値があります数値検索の問題に関係なく、プリペアド ステートメントを使用することを強くお勧めします。コードのセキュリティが強化されるだけでなく、パフォーマンスも向上する可能性があります。したがって、このソリューションは、効率的なデータ処理の探求における希望の光であると考えてください。
以上がPDO MySQL Integer が文字列を取得するのはなぜですか? それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。