2
我從客戶那裏得到了一個數據庫,需要創建一些邏輯,比如讀取和插入條目。列名中的特殊字符
當我嘗試了一些基本要求,如:
$json = array();
$query = "select * from tab1";
if ($result = $link->query ($query)) {
while ($row = $result->fetch_assoc()) {
array_push ($json, $row);
}
}
die (json_encode ($json));
,我意外的得到了一個空的響應。
直接從PHPMyAdmin執行相同的查詢,我得到了所有預期的結果。
當我剛剛甩了JSON結果在瀏覽器中,我注意到(摘錄):
... string(30) "ColumnName(�)" ...
我花了一段時間才能發現,那還有列有一些特殊的字符名稱,如µ
和°
。顯然,他們無法正確顯示,所以整個迴應變得無效,我沒有結果。
只要從列名稱中刪除這些字符即可解決問題。
是否有另一種解決方案,而不是隻是手動查找這些字符並將其刪除?
有欄中將特殊字符沒有固有的問題名。你的代碼到底在幹什麼? – VoteyDisciple
將連接字符集設置爲utf8(utf8mb4是mysql中真正的unicode字符集,因此如果需要,請使用該字符集),並將表名和列名置於反引號中。 –