sql >> データベース >  >> RDS >> Mysql

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

    解決策は、 mysqlndを使用していることを確認することです。 php用のドライバー。

    mysqlndを使用していないことをどのようにして知ることができますか?

    php -iを表示する場合 、なし 「mysqlnd」の言及。 pdo_mysql セクションは次のようになります:

    pdo_mysql
    
    PDO Driver for MySQL => enabled Client API version => 5.1.72
    

    どのようにインストールしますか?

    L / A / M / Pのほとんどのインストールガイドでは、apt-get install php5-mysqlを提案しています。 ただし、MySQLのネイティブドライバは別のパッケージによってインストールされます:php5-mysqlnd 。これはppa:ondrej / php5-oldstableで利用できることがわかりました 。

    新しいドライバーに切り替えるには(Ubuntuの場合):

    • 古いドライバーを削除します:
      apt-get remove php5-mysql
    • 新しいドライバーをインストールします:
      apt-get install php5-mysqlnd
    • apache2を再起動します:
      service apache2 restart

    ドライバーが使用されていることを確認するにはどうすればよいですか?

    php -i pdo_mysqlで明示的に「mysqlnd」に言及します セクション:

    pdo_mysql
    
    PDO Driver for MySQL => enabled
    Client API version => mysqlnd 5.0.10 - 20111026 - $Id:      e707c415db32080b3752b232487a435ee0372157 $
    

    PDO設定

    PDO::ATTR_EMULATE_PREPARESであることを確認してください falseです (デフォルトを確認するか、設定してください):
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

    PDO::ATTR_STRINGIFY_FETCHESであることを確認してください falseです (デフォルトを確認するか、設定してください):
    $pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);

    戻り値

    • 浮動小数点型(FLOAT、DOUBLE)は、PHP浮動小数点として返されます。
    • 整数型(INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT†)はPHP整数として返されます。
    • 固定小数点型(DECIMAL、NUMERIC)は文字列として返されます。

    †64ビットsignedint(9223372036854775807)より大きい値のBIGINTは、文字列(または32ビットシステムでは32ビット)として返されます

        object(stdClass)[915]
          public 'integer_col' => int 1
          public 'double_col' => float 1.55
          public 'float_col' => float 1.5
          public 'decimal_col' => string '1.20' (length=4)
          public 'bigint_col' => string '18446744073709551615' (length=20)
    


    1. SQLServer2017でデータベースを作成する

    2. Oracle SQL DeveloperでXMLファイルをインポートする方法は?

    3. MariaDBでのWEEKOFYEAR()のしくみ

    4. SQL Server:SQLクエリを使用してテーブルの主キーを取得します