ホームページ >データベース >mysql チュートリアル >MySQL の整数が PDO で文字列として返されるのはなぜですか? 数値として取得するにはどうすればよいですか?

MySQL の整数が PDO で文字列として返されるのはなぜですか? 数値として取得するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-24 02:32:17496ブラウズ

Why are MySQL integers returned as strings in PDO, and how can I retrieve them as numbers?

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 サイトの他の関連記事を参照してください。

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