Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để trả về số nguyên và cột số từ MySQL dưới dạng số nguyên và số trong PHP?

Giải pháp là đảm bảo rằng bạn đang sử dụng mysqlnd trình điều khiển cho php.

Làm cách nào để biết rằng bạn không sử dụng mysqlnd?

Khi xem php -i , sẽ có không đề cập đến "mysqlnd". pdo_mysql phần sẽ có một cái gì đó như thế này:

pdo_mysql

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

Bạn cài đặt nó như thế nào?

Hầu hết các hướng dẫn cài đặt cho L / A / M / P đều đề xuất apt-get install php5-mysql nhưng trình điều khiển gốc cho MySQL được cài đặt bởi một gói khác:php5-mysqlnd . Tôi thấy rằng điều này khả dụng với ppa:ondrej / php5-oldstable .

Để chuyển sang trình điều khiển mới (trên Ubuntu):

  • Xóa trình điều khiển cũ:
    apt-get remove php5-mysql
  • Cài đặt trình điều khiển mới:
    apt-get install php5-mysqlnd
  • Khởi động lại apache2:
    service apache2 restart

Làm cách nào để kiểm tra xem trình điều khiển đang được sử dụng?

Bây giờ php -i sẽ đề cập rõ ràng đến "mysqlnd" trong pdo_mysql phần:

pdo_mysql

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

Cài đặt PDO

Đảm bảo rằng PDO::ATTR_EMULATE_PREPARESfalse (kiểm tra mặc định của bạn hoặc đặt nó):
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

Đảm bảo rằng PDO::ATTR_STRINGIFY_FETCHESfalse (kiểm tra mặc định của bạn hoặc đặt nó):
$pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);

Giá trị trả về

  • Các loại dấu phẩy động (FLOAT, DOUBLE) được trả về dưới dạng các dấu phẩy động của PHP.
  • Các loại số nguyên (INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT †) được trả về dưới dạng số nguyên PHP.
  • Các loại Điểm cố định (DECIMAL, NUMERIC) được trả về dưới dạng chuỗi.

† BIGINTs có giá trị lớn hơn 64 bit có dấu int (9223372036854775807) sẽ trả về dưới dạng chuỗi (hoặc 32 bit trên hệ thống 32 bit)

    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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách kết nối với MySQL bằng Perl

  2. Nhiều số lượng với các điều kiện khác nhau trong một truy vấn MySQL

  3. mysqli_query () mong đợi ít nhất 2 tham số, 1 tham số được đưa vào?

  4. Chuyển đổi dự phòng cơ sở dữ liệu cho các trang web WordPress

  5. Nó có nghĩa là gì để thoát khỏi một chuỗi?