数据库中的编码问题 - 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 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章