0
我有null
當記錄包含數據庫中的特殊字符時返回。獲取utf8_general_ci從特定字符的MySQL數據庫varchar記錄返回null
舉一個例子的簡單數據庫看起來是這樣的:
ID Integer PRIMARY KEY, AUTO_INCREMENT
Name varchar(20) NOT NULL, utf8_general_ci
ID Name
1 Blop
2 Blaap
3 Bluup
了,所以似乎不支持的例如「U」的使用變音,所以對於這個例子,只是想象'Bluup'有兩個你的變音符號。
如果我運行查詢GET * FROM names
後來我收到我的$.get
功能結果:
[object]
1 [object]
id : 1
name : Blop
2 [object]
id : 2
name : Blaap
3 [object]
id : 3
name : null
當使用var_dump
傾銷的數據,我發現這個結果目前也已經null
。
因此,PHP不喜歡得到奇怪的字符或者MySQL甚至不會將它們返回給PHP。過去幾個小時我一直在尋找答案,但無法找到答案。
我不能去和手動,或與查詢,更改所有具有特殊字符的記錄,因爲數據不是我的更改。
有沒有辦法解決這個問題?
你是什麼意思與「MySQL的連接上設置」,你的意思,它在創建到數據庫的連接時必須包含它,以便它對所有查詢使用'utf8'?順便說一句,好文章:) – Nukeface
每次連接到數據庫後運行查詢'SET NAMES utf8;'。如果這更容易,也可以將其設置爲服務器上的默認值。 –
像@MichaelMior很好地指出:在php當你創建mysql連接時,應該是你執行的第一個查詢 – Stephan