【发布时间】:2013-11-05 23:50:38
【问题描述】:
我们开始网站的目的是只使用英语并使用英语对 MySQL 进行所有插入/删除。并在写入数据库时使用 PHP 转义字符串。
现在的情况是我们的网站有很多中国/德国/俄罗斯用户,我们在将数据写入 MySQL 时遇到问题 - PHP 能够将数据写入数据库,但它会进行一些内部转换,例如替换几个字符到不同的东西(例如 Plötzlich --> Plq$tzlich)。
但是,如果我去 phpMyAdmin 并复制粘贴中文或任何其他语言字符串并插入它,请按原样写入。所以怀疑是PHP在写入数据库之前进行了转换。
我们正在努力使其适用于所有语言,但这是我们第一次在(MySQL 和 PHP)中处理全球语言。
如果有任何专家可以分享一些非常好的和高度赞赏的信息。
- 我们有 MYSQL InnoDB 数据库,里面有数据,我们应该如何转换以支持全球语言?
- 我们使用 PHP 将记录写入 MySQL 并使用转义字符串(数据)然后将其写入数据库。我们认为转义不支持全局语言,它会进行一些转换。如何处理这个或我们应该使用什么?
- 此转换是否会影响数据库中的现有数据?
如果我们能得到一些专家的帮助,我们将非常感激。
【问题讨论】:
-
你使用的是mysqli还是PDO?
-
嗨,Speccode 它是 MySQLi
-
您能多谈谈您是如何使用 PHP 转义数据的吗?如果您使用的是 MySQLi,则应该使用不需要显式转义的参数化查询,也不应该这样做。至于数据损坏,你的数据库是什么字符集,你的网页是什么字符集?
-
@Pekka웃 提供的链接有很多信息可以帮助您。另外...我不知道您如何转义数据,但您应该通过准备好的语句来做到这一点:pl1.php.net/manual/en/mysqli.prepare.php
标签: php mysql utf-8 escaping globalization