ホームページ > バックエンド開発 > PHPチュートリアル > PHP で MySQL から整数および数値データ型が正しく返されることを確認するにはどうすればよいですか?

PHP で MySQL から整数および数値データ型が正しく返されることを確認するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-27 08:23:13
オリジナル
430 人が閲覧しました

How to Ensure Integer and Numeric Data Types Are Returned Correctly from MySQL in PHP?

MySQL から PHP の整数および数値データ型を整数および数値として取得する方法

PHP を使用して MySQL にクエリを実行するときに、よく発生する問題が発生します。整数列と数値列が文字列型として返される問題。 「PDO::ATTR_STRINGIFY_FETCHES」を false に設定しても、この問題は解決しません。

解決策

  1. mysqlnd ドライバーを確認してください:
    ネイティブドライバーではなく mysqlnd ドライバーを使用していることを確認してください。 MySQLドライバー。 PHP の「php -i」出力で、pdo_mysql セクションを探します。 「mysqlnd」がない場合は、ネイティブ ドライバーが使用されていることを示します。
  2. mysqlnd ドライバー (Ubuntu) をインストールします:
    「apt-get delete php5-」でネイティブ ドライバーを削除します。 mysql」を選択し、「apt-get install」で mysqlnd ドライバーをインストールします。 php5-mysqlnd."
  3. mysqlnd の使用法を確認します:
    Apache を再起動した後、PHP の "php -i" 出力の pdo_mysql セクションに "mysqlnd" が記載されているかどうかを確認します。
  4. 設定PDO:
    次の PDO 属性が設定されていることを確認します:

    • PDO::ATTR_EMULATE_PREPARES: false
    • PDO::ATTR_STRINGIFY_FETCHES: false

返される型

mysqlnd ドライバーを使用する場合、整数および数値列の値は次の PHP データ型として返されます。

  • 浮動小数点型 (FLOAT、 DOUBLE): 浮動小数点
  • 整数型 (INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT): 整数
  • 固定小数点型 (DECIMAL、NUMERIC): 文字列 (特殊な場合があります) case)

$pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$stmt = $pdo->prepare('SELECT * FROM table');
$stmt->execute();

$result = $stmt->fetch(PDO::FETCH_OBJ);

echo $result->integer_col; // int
echo $result->double_col; // float
echo $result->decimal_col; // string
echo $result->bigint_col; // string (since value exceeds 64-bit signed int)
ログイン後にコピー

出力:

1
1.55
1.20
18446744073709551615
ログイン後にコピー

以上がPHP で MySQL から整数および数値データ型が正しく返されることを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート