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字符集,因此如果需要,请使用该字符集),并将表名和列名置于反引号中。 –