Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysqli_fetch_对象不';t从某些表返回字符串中的重音符号_Php_Mysql_Mysqli - Fatal编程技术网

Php mysqli_fetch_对象不';t从某些表返回字符串中的重音符号

Php mysqli_fetch_对象不';t从某些表返回字符串中的重音符号,php,mysql,mysqli,Php,Mysql,Mysqli,我遇到了一个我似乎无法解决的问题。 当我从MySQL数据库的某个表“articles”中提取对象时,带有重音符号的字符(如éáú等)会变成问号。然而,当我从不同的表格中“突出显示”时,这种情况不会发生 我已经检查了这些表是否在MySQL中使用相同的字符集和类型。我还检查了问题是否仅出现在前端,但我的调试器已经向我显示变量包含问号符号 这是从数据库获取数据的代码 if ($result = mysqli_query($conn, $query)) { while ($obj = m

我遇到了一个我似乎无法解决的问题。 当我从MySQL数据库的某个表“articles”中提取对象时,带有重音符号的字符(如éáú等)会变成问号。然而,当我从不同的表格中“突出显示”时,这种情况不会发生

我已经检查了这些表是否在MySQL中使用相同的字符集和类型。我还检查了问题是否仅出现在前端,但我的调试器已经向我显示变量包含问号符号

这是从数据库获取数据的代码

if ($result = mysqli_query($conn, $query)) {
        while ($obj = mysqli_fetch_object($result)) {
            $resObj[] = $obj;
        }
} else return false;
return $resObj;
我可能遗漏了一些明显的东西,但我不知道是什么


编辑:phpMyAdmin中的表显示了正确的字符,因此它们被正确插入。

在将数据写入数据库之前,这可能是一个问题。你应该检查你的php代码。作为第一步,尝试转换已存在数据的字符集

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;

请考虑备份。

< P>也许是在数据写入DB之前的问题。你应该检查你的php代码。作为第一步,尝试转换已存在数据的字符集

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;

以前考虑备份。

所以……没有时间验证这个问题,但看起来问题可能与此有关。此命令将字符集与关联

如果您正在调用
.highlights
,然后没有为
文章指定DB
,那么至少在理论上,这可能会导致差异。同时
mysqli\u set\u字符集($conn,)
调用指令
set name


将来有很多设置可以帮助解决这个问题(比如为所有数据库设置默认排序规则并更新值),但是在PHP中显式设置会更安全。显式的比隐式的好。

所以…没有时间来验证这一点,但看起来问题可能与此有关。此命令将字符集与关联

如果您正在调用
.highlights
,然后没有为
文章指定DB
,那么至少在理论上,这可能会导致差异。同时
mysqli\u set\u字符集($conn,)
调用指令
set name


将来有很多设置可以帮助解决这个问题(比如为所有数据库设置默认排序规则并更新值),但是在PHP中显式设置会更安全。显式比隐式更好。

确保数据库字符集在UTF-8中,连接在UTF-8中吗?嗯,我想不是,mysqli_set_字符集($conn,“utf8”)修复了它。。。我仍然不明白为什么这只是一个表的问题。可能只有一个表有需要UTF8的数据?确保你的数据库字符集在UTF-8中,你的连接在UTF-8中吗?嗯,我想不是,mysqli\u set\u字符集($conn,“UTF8”)修复了它。。。我仍然不明白为什么这只是一个表的问题。可能只有一个表的数据需要UTF8?你编辑了你的问题,所以我的答案可能已经过时了。不,他们只是添加了一个编辑,说明他们在PHPmyAdmin中的表显示了正确的数据字符集。我尝试了一下,但没有改变情况,无论如何谢谢你!你编辑了你的问题,所以我的答案可能已经过时了。没有。他们只是添加了一个编辑,说明他们在PHPmyAdmin中的表显示了正确的数据字符集。我尝试了一下,但没有改变情况,无论如何,谢谢!