PDO:PDO :: MYSQL_ATTR_INIT_COMMAND中的多个命令

Cha*_*ama 5 php pdo

我正在使用此PDO连接:

try{

$db=new PDO("
mysql:host=localhost;
dbname=...",
"dbu...",
"pass",
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET lc_time_names='de_DE'"));
}
catch(PDOException $e){die("Error!");}
Run Code Online (Sandbox Code Playgroud)

现在我想添加另一个init命令:

array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET lc_time_names='de_DE'",
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
)
Run Code Online (Sandbox Code Playgroud)

但看起来utf8-one覆盖了第一个init命令.

所以我试过这个,但也没有成功:

array(
PDO::MYSQL_ATTR_INIT_COMMAND => array("SET lc_time_names='de_DE'","SET NAMES utf8")
)
Run Code Online (Sandbox Code Playgroud)

知道如何发送不止一个init命令吗?

谢谢!

fus*_*n3k 24

正确的语法是:

array
(
    PDO::MYSQL_ATTR_INIT_COMMAND
    => 
    "SET lc_time_names='de_DE',NAMES utf8"
)
Run Code Online (Sandbox Code Playgroud)

所以,不是多个数组,而是使用逗号作为分隔符并且不重复SET的字符串.


编辑:根据官方文件:

SET语句可以包含多个变量赋值,以逗号分隔.