我以前在正常的mysql_*连接中有这个:
mysql_set_charset("utf8",$link);
mysql_query("SET NAMES 'UTF8'");
我的PDO需要它吗?我应该把它放在哪里呢?
$connect = new PDO("mysql:host=$host;dbname=$db", $user, $pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
发布于 2010-12-06 05:58:23
您将在您的连接字符串中包含它,如下所示:
"mysql:host=$host;dbname=$db;charset=utf8"
但是,在PHP 5.3.6之前,charset选项被忽略。如果你运行的是一个旧版本的PHP,你必须这样做:
$dbh = new PDO("mysql:$connstr", $user, $password);
$dbh->exec("set names utf8");
发布于 2011-03-29 13:13:55
在PHP 5.3.6之前,charset选项被忽略。如果你运行的是一个旧版本的PHP,你必须这样做:
<?php
$dbh = new PDO("mysql:$connstr", $user, $password);
$dbh -> exec("set names utf8");
?>
发布于 2011-09-07 03:56:59
这可能是最优雅的方式。
就在PDO构造函数调用中,但要避免使用错误字符集选项(如上所述):
$connect = new PDO(
"mysql:host=$host;dbname=$db",
$user,
$pass,
array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
)
);
对我来说很有用。
https://stackoverflow.com/questions/4361459
复制相似问题