数据库中的编码问题 - PHP [关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中的编码问题 - PHP [关闭]相关的知识,希望对你有一定的参考价值。

我创建了一个配置文件,我将其包含在每个创建的文件中。此配置文件需要用于连接到数据库而不在每个文件中声明它。问题是,当我使用查询将数据传递到表中时,编码已损坏。我已经看过几个在线解决方案,但是有一种方法可以在配置文件中集成修复程序吗?这样就不必在每次查询之前设置编码类型。如果我插入:“这是一个测试”,则在数据库中输入:“这是一个测试”。

这是我的配置文件

define("HOST", "localhost");
define("USER", "root");
define("DATABASE", "test");
define("PASSWORD", "");
define("SET NAMES 'utf8'"); #> you can do something like that?
答案

只需运行查询SET NAMES'UTF8';在连接到数据库之后的类构造函数中。然而,如果您仍然在某处编码有问题,请编写一个运行集名称查询的函数,这样您就可以在需要时轻松调用它。

另一答案

你的桌子里有unicode字符吗?每当您想要将数据发送到具有无法用纯ASCII表示的字符的服务器时,就需要“SET NAMES'utf8'',如'ñ'或'ö'。

如果mysql实例未配置为默认情况下从客户端连接预期UTF-8编码(许多是,取决于您的位置和平台。)

如果您不了解Unicode的工作原理,请阅读http://www.joelonsoftware.com/articles/Unicode.html

如果您不确定,请尝试从配置文件中删除最后一行并尝试一下。

另一答案

首先,您需要运行此查询。但是将查询放入define并不是一个好主意,而且这个定义在您向我们展示的代码中没有任何名称。

所以你可以这样做:

define("DB_ENCODING", 'utf8');

然后在连接数据库后运行查询:

"SET NAMES '".DB_ENCODING."'"

然而,它仍然不是最好的选择。例如,如果你使用mysqli,你可以使用mysqli_set_charset(),所以你可以使用:

mysqli_set_charset($con, DB_ENCODING);

以上是关于数据库中的编码问题 - PHP [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法关闭代码片段中的命名建议?

php 使用PHP以正确的编码修改HTML片段

解决方案电影标题中缺少代码的片段,完成挑战更多[关闭]

将字符串数据从Activity发送到片段[关闭]

如果不了解“PHP编码”,您会建议使用“mailto”方式吗? [关闭]

使用凌空json数据的片段中的Recyclerview?