用的是 Datatables Editor, 对单一表的增删查改。
问题出在获取数据的 ajax ( Datatables Editor 返回的 AJAX )是完全空白的(不是空白 ajax {} 那样的,是纯空白 ),HTTP200. 打开 PHP 所有错误显示都没有任何错误。如果 SQL/数据库出现错误 ajax 里面起码会有错误信息。
然后为了找错,我去调整 Field::inst (也就是 select 后面跟的列的名称),发现只要去掉一个叫 question 的列就没有问题了。
进一步查错,用 where id = x 一次显示一行,发现是第五行出的问题。只要包含了第五行 question 这一列,结果就完全空白。
这行 question 的内容是这样的:
What are the 5 common types of “ dizziness ” seen in xxx program?
json encode 的结果:
echo json_encode(array('a'=>'What are the 5 common types of “ dizziness ” seen in xxx program?'));
{"a":"What are the 5 common types of \u201cdizziness\u201d seen in xxx program?"}
离谱的事情出现了:
我把这一段
What are the 5 common types of “ dizziness ” seen in xxx program?
复制粘贴到生产服务器的 php -a 下面的时候, 结果是这样的
dizziness 自动跑到了光标后面,\u201c \u201d 这俩引号不见了。
粘贴在本地环境的 php -a 就没这个问题(本地 7.0, 远程 5.5.9 )
远程直接贴在 php 文件里面再 json_encode 结果和本地一样的,感觉问题不在这里
有哪位大神知道这是什么情况? 早期 PHP 的 bug ?