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

Sự cố khi chèn chuỗi utf-8 vào cơ sở dữ liệu và sau đó xuất ra trang web

Có, tôi có thể.
Bạn đã không cho máy chủ Mysql biết bạn muốn mã hóa dữ liệu nào.
Mysql có thể cung cấp bất kỳ mã hóa nào trong trường hợp mã hóa trang của bạn khác với mã hóa dữ liệu được lưu trữ. Và mã hóa nó một cách nhanh chóng.
Do đó, nó cần được thông báo về kiểu mã hóa ưa thích của ứng dụng khách (mã PHP của bạn là ứng dụng khách cơ sở dữ liệu đó).
Theo mặc định, nó là latin1 . Do đó, vì không có ký hiệu nào như vậy trong bảng ký tự latin1, thay vào đó, dấu hỏi sẽ được trả về.

Có 2 cách để cho mysql biết chúng tôi muốn mã hóa nào:

  • ưu tiên hơn một chút là mysqli_set_charset () chức năng (phương pháp trong trường hợp của bạn).
  • ít được ưu tiên hơn là SET NAMES truy vấn.

Nhưng miễn là bạn đang sử dụng tiện ích mở rộng mysqli đúng cách, điều đó không thực sự quan trọng. (mặc dù bạn không phải)

Lưu ý rằng trong mysql mã hóa này được gọi là utf8 , không có dấu gạch ngang hoặc dấu cách.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql (i) _real_escape_string, an toàn để dựa vào?

  2. Trường văn bản duy nhất trong MySQL và php

  3. Tối thiểu / tối đa MySQL cho loại DOUBLE

  4. cải thiện hiệu suất cho điều khoản LIKE

  5. Cơ sở dữ liệu MySQL của tôi bị hỏng ... Tôi phải làm gì bây giờ?