[英]UTF-8 Insert Query With MYSQL not working on Deployment server
我創建了一個UTF-8數據庫字符集應用程序。 當使用php創建連接時,我正在執行mysqli_query($link, 'SET CHARACTER SET utf8')
。
它在localhost上運行良好,包括SELECT
, INSERT
等。我在網上部署了一些帶有一些示例數據的應用程序,並快速瀏覽了我看到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')
之一。
我的問題是
INSERT or UPDATE
Query在部署后產生問題但是SELECT
工作正常 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.