Php PDO Postgresql UTF8字符集
我正在寻找一种使用UTF8字符集连接到postgresql数据库的方法 目前,我必须在连接之后发送一个查询请求来指定字符集。这根本不是最优的Php PDO Postgresql UTF8字符集,php,sql,postgresql,pdo,character-encoding,Php,Sql,Postgresql,Pdo,Character Encoding,我正在寻找一种使用UTF8字符集连接到postgresql数据库的方法 目前,我必须在连接之后发送一个查询请求来指定字符集。这根本不是最优的 $connect = new \PDO("pgsql:host=$this->host;dbname=$this->base", $this->user, $this->pass); $connect->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTI
$connect = new \PDO("pgsql:host=$this->host;dbname=$this->base", $this->user, $this->pass);
$connect->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$connect->query("SET NAMES '$this->charset'");
MySQL允许在参数上传递一个表来指定字符集,我正在寻找相同的东西
$this->db = new \PDO("pgsql:host=$this->PARAM_hote;dbname=$this->PARAM_nom_bd", $this->PARAM_utilisateur, $this->PARAM_mot_passe, array(\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
$this->db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
尝试在构造函数中添加参数:
$connect = new \PDO("pgsql:host=$this->host;dbname=" . $this->base . ";options='-c client_encoding=utf8'", $this->user, $this->pass);
$connect->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
尝试在构造函数中添加参数:
$connect = new \PDO("pgsql:host=$this->host;dbname=" . $this->base . ";options='-c client_encoding=utf8'", $this->user, $this->pass);
$connect->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
与:
new PDO('pgsql:host=' . $db_host . ';dbname=' . $db_name . ';options=\'--client_encoding=UTF8\'', $db_username, $db_password, array(PDO::ATTR_PERSISTENT => true));
事实上,传递选项的单引号--client_encoding=UTF8非常重要,而双引号不起作用。附带:
new PDO('pgsql:host=' . $db_host . ';dbname=' . $db_name . ';options=\'--client_encoding=UTF8\'', $db_username, $db_password, array(PDO::ATTR_PERSISTENT => true));
事实上,传递选项的单引号--client_encoding=UTF8非常重要,而双引号不起作用。您可以像这样传递“options”键:
$dbh = new PDO
(
"pgsql:dbname=mydbname;host=myhost;port=5432;options='--client_encoding=UTF8'",
"username",
"password"
);
您可以按如下方式传递“选项”键:
$dbh = new PDO
(
"pgsql:dbname=mydbname;host=myhost;port=5432;options='--client_encoding=UTF8'",
"username",
"password"
);
您是否尝试过在连接字符串中使用
charset=charset\u?类似于…dbname=SOME\u DB;charset=SOME\u charset…
供参考:您是否尝试在连接字符串中使用charset=charset\u?类似于…dbname=SOME\u DB;字符集=一些字符集…
供参考: