ホームページ >データベース >mysql チュートリアル >PHP で MySQL から整数列と数値列をネイティブ型として取得する方法

PHP で MySQL から整数列と数値列をネイティブ型として取得する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-07 05:25:16226ブラウズ

How to Retrieve Integer and Numeric Columns as Their Native Types from MySQL in PHP?

MySQL の整数列と数値列を PHP の整数と数値として返すにはどうすればよいですか?

PHP で MySQL データベースを操作する場合、整数列と数値列が正しく取得され、表現されることが重要です。 PHP の PDO 拡張機能はこれを行う方法を提供しますが、MySQL ネイティブ ドライバーが使用されていない場合は問題が発生する可能性があります。

整数列が文字列として返される理由

MySQL ネイティブ ドライバーには、数値を整数および数値として返すためのサポートがありません。これは、デフォルトでは、すべての列が文字列として取得されることを意味します。 PDO フラグ PDO::ATTR_STRINGIFY_FETCHES が false に設定されていても、ドライバーの動作は変わりません。

修正方法

解決策は、mysqlnd PHP 用ドライバー。このドライバーは、ネイティブ PHP タイプで整数値と数値を返すことをサポートしています。

インストール

Ubuntu に mysqlnd ドライバーをインストールするには、次の手順を使用できます。

    古い MySQL ネイティブ ドライバーを削除します: apt-get Remove php5-mysql
  1. mysqlnd ドライバーをインストールします: apt-get install php5-mysqlnd
  2. Apache を再起動します: service apache2 restart

検証

mysqlnd ドライバーが使用されている場合は、php -i を実行します。出力の pdo_mysql セクションに「mysqlnd」が含まれるようになります。

PDO 設定

次の PDO 設定が正しく設定されていることを確認してください:

    PDO::ATTR_EMULATE_PREPARES は次のようにする必要がありますfalse
  • PDO::ATTR_STRINGIFY_FETCHES は false である必要があります

戻り値

mysqlnd ドライバーでは、次の戻り値の型が使用されます。

    浮動小数点型(FLOAT、DOUBLE): PHP 浮動小数点
  • 整数型 (INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT): PHP 整数
  • 固定小数点型 (DECIMAL、NUMERIC): strings

mysqlnd ドライバーに切り替えると、整数値と数値を正しく取得できるようになります:

以上がPHP で MySQL から整数列と数値列をネイティブ型として取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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