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

标签 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!");}

现在我想添加另一个初始化命令:

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/

相关文章:

php - MySQL(不是 mysqli)插入最后一个 ID 不起作用

php - PDO 插入查询失败

php - 如何在 Drupal 7 中包含 php 类

php - Yii2 GridView 中的重复记录

php - 在html输入字段中显示MySQL表数据(PDO)

php - 我可以在PHP中混合使用MySQL API吗?

php - 将多个值插入数据库、php、sql

php - 使用 PDO 准备语句在 MySQL 中插入 BIT 值

javascript - html 选择标记从选中的复选框更改

javascript - ajax调用函数的嵌套