ホームページ >データベース >mysql チュートリアル >文字列変換を行わずに PDO を使用して MySQL から数値データ型を取得するにはどうすればよいですか?

文字列変換を行わずに PDO を使用して MySQL から数値データ型を取得するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-22 14:09:10436ブラウズ

How Can I Retrieve Numeric Data Types from MySQL Using PDO Without String Conversion?

PDO を使用して MySQL から数値データ型を取得する

PDO と MySQL を使用すると、データベースから取得した数値が数値データ型ではなく文字列として返されます。この不一致は、PHP データベース オブジェクト (PDO) 拡張機能のデフォルトの動作が原因で発生する可能性があります。

なぜ数値ではなく文字列を使用するのですか?

残念ながら、次のようなことが比較的一般的です。データベースにクエリを実行するときに、数値の代わりに文字列を受け取ります。これは、PDO 拡張機能が通常、サポートされているすべてのデータベース ドライバーとの互換性を確保するためにデータベースの数値を文字列に変換するために発生します。

文字列変換を無効にする

PDO による文字列化を防止するには数値を使用して、PDO 属性 PDO::ATTR_EMULATE_PREPARES を変更できます。この属性を false に設定すると、プリペアド ステートメント エミュレーションを無効にし、MySQL が数値型を含むネイティブ データ型を返すことができるようになります。

$dsn = 'mysql:dbname=database;host=localhost';
$pdo = new PDO($dsn, $user, $pass, array(
    PDO::ATTR_EMULATE_PREPARES => false
));

PDO::ATTR_STRINGIFY_FETCHES

PDO::ATTR_STRINGIFY_FETCHES 属性は MySQL PDO ドライバーには適用できません。この属性は、ネイティブ データ型ではなく文字列を返すことをサポートする他のデータベース ドライバーを対象としています。

したがって、PDO のプリペアド ステートメント エミュレーションを無効にすることで、数値がネイティブ データ型として返され、文字列化が防止され、許可されるようになります。データを正しく扱うことができます。

以上が文字列変換を行わずに PDO を使用して MySQL から数値データ型を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。