0

null当记录包含数据库中的特殊字符时,我已经返回。

为简单起见,数据库如下所示:

ID        Integer        PRIMARY KEY, AUTO_INCREMENT
Name      varchar(20)    NOT NULL, utf8_general_ci

ID        Name
1         Blop
2         Blaap
3         Bluup

现在,SO 似乎不支持使用带有变音符号的“u”,所以对于这个例子,想象一下“Bluup”有两个带变音符号的 u

如果我运行查询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。在过去的几个小时里,我一直在寻找这个问题的答案,但找不到。

我不能手动或通过查询更改所有带有特殊字符的记录,因为数据不是我要更改的。

有没有办法解决这个问题?

4

1 回答 1

1

尝试设置mysql连接:

SET NAMES utf8;

为了更好地理解编码是如何工作的,我强烈推荐这篇文章

于 2013-10-11T10:27:02.283 回答