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

Sự cố mã hóa PDO UTF-8?

Cái này:

$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES utf8');

là hoàn toàn vô nghĩa. Xem http://php.net/manual/en/ref.pdo- mysql.php . MYSQL_ATTR_INIT_COMMAND được thực thi ngay sau khi kết nối được thiết lập, không muộn hơn. Nếu bạn đặt điều này trên một đối tượng PDO đã được tạo đầy đủ, thì đã quá muộn và nó không bao giờ thực thi. Bạn cần chuyển nó cho hàm tạo:

new PDO(..., ..., ..., array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'))

Ngoài ra, nếu phiên bản PHP của bạn hỗ trợ nó, hãy thêm charset=utf8 tới DSN.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL chỉ chọn các hàng có giá trị tối đa trên một cột

  2. Có đúng về mặt khái niệm khi thực hiện SELECT MAX (id), v.v. để tìm hàng được chèn cuối cùng không?

  3. chèn dữ liệu XML vào mysql bằng php

  4. Mã lỗi 1111. Sử dụng chức năng nhóm không hợp lệ

  5. Các ký tự đại diện có thể được sử dụng trên tên bảng cho GRANT trong MySQL không