我正在使用这个 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!");}
现在我想添加另一个初始化命令:
array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET lc_time_names='de_DE'",
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
)
但看起来 utf8-one 覆盖了第一个 init 命令。
所以我试过这个,但也没有成功:
array(
PDO::MYSQL_ATTR_INIT_COMMAND => array("SET lc_time_names='de_DE'","SET NAMES utf8")
)
知道如何发送多个初始化命令吗?
谢谢!
最佳答案
正确的语法是:
array
(
PDO::MYSQL_ATTR_INIT_COMMAND
=>
"SET lc_time_names='de_DE',NAMES utf8"
)
因此,不是多个数组,而是以逗号作为分隔符且不重复 SET 的字符串。
编辑:根据official documentation :
A SET statement can contain multiple variable assignments, separated by commas.
关于php - PDO:PDO::MYSQL_ATTR_INIT_COMMAND 中的多个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35415620/