【问题标题】:Japanese characters: PHP using PDO and MySQL日文字符:PHP 使用 PDO 和 MySQL
【发布时间】:2013-07-04 15:37:06
【问题描述】:

我今天正在处理一些棘手的事情...我有一个使用 UTF-8 编码和 utf8_general_ci 排序规则的 MySQL 数据库。所有特殊字符都正确插入,但不是日文。这是我用来插入新行的代码:

$dbConnection = new PDO("mysql:host=000.000.000.000;dbname=db_name", "db_user", "db_pass", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$parameterArray = array();
$parameterArray[":1"] = utf8_encode($message);

$queryResult = $dbConnection->prepare(QUERY_USERS_INSERT_MESSAGE);
$queryResult->execute($parameterArray);

在插入拉丁字符时一切正常,即使是像ñ,à,ë,...这样的特殊字符,但是当我尝试插入像たなは这样的日文字符时,MySQL会插入NULL...

有什么想法吗?我已经在谷歌上搜索了几个小时......

【问题讨论】:

标签: php mysql utf-8 pdo


【解决方案1】:

问题解决了的人:

@deceze 和 @Daniel_Vérité 得到了正确答案。

utf8_encode 是问题所在。

谢谢。

【讨论】:

    【解决方案2】:

    utf8_encode添加$this->conn->exec("set names utf8")解决的问题;

    示例:

    $this->conn->exec("set names utf8_encode");
    

    谢谢。

    【讨论】:

      猜你喜欢
      • 2016-05-19
      • 2011-06-12
      • 1970-01-01
      • 1970-01-01
      • 2011-12-21
      • 2014-11-25
      • 2012-10-23
      • 2011-03-21
      • 1970-01-01
      相关资源
      最近更新 更多