簡體   English   中英

UTF-8插入查詢MYSQL在部署服務器上不起作用

[英]UTF-8 Insert Query With MYSQL not working on Deployment server

我創建了一個UTF-8數據庫字符集應用程序。 當使用php創建連接時,我正在執行mysqli_query($link, 'SET CHARACTER SET utf8')

它在localhost上運行良好,包括SELECTINSERT等。我在網上部署了一些帶有一些示例數據的應用程序,並快速瀏覽了我看到UTF-8字符的頁面。

第二天客戶打電話給我的數據顯示為?????? 當我通過提供的界面添加一些記錄時, 我很驚訝他是對的但是在localhost它工作正常。

經過一些搜索,我找到了多個答案,比如執行這些查詢

  • set character_set_client='utf8'
  • set character_set_results='utf8'
  • set collation_connection='utf8_general_ci'
  • SET NAMES 'utf8'
  • 然后設置響應等編碼

他們都沒有工作,但這個mysqli_set_charset($link, 'utf8')之一。

我的問題是

  1. 為什么它在localhost上工作,只有INSERT or UPDATE Query在部署后產生問題但是SELECT工作正常
  2. mysqli_set_charset($link, 'utf8')mysqli_query($link, 'SET CHARACTER SET utf8')什么區別?

您的localhost數據庫可能已使用utf8排序規則設置,但遠程Web服務器的設置不正確。

基於localhost的開發的替代方法是使用vagrant虛擬機。 您可以盡可能地將其設置為與生產密切相關。

mysqli_set_charset不只是設置客戶端字符集。 請參閱https://secure.php.net/manual/en/mysqlinfo.concepts.charset.php ,該鏈接來自mysqli_set_charset的手冊頁

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM