9

PDO オブジェクトに UTF8 を設定したいと考えています。このクラスは MySQL で正しく動作します。array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8")PgSQLの類似物が見つからず、キリル文字を扱うことができません。

class oop{
private $host="localhost";
    private $user="xxxx";
    private $db="xxxx";
    private $pass="111111";
    private $conn;

public function __construct(){

    $this->conn = new PDO("pgsql:host=".$this->host.";dbname=".$this->db,$this->user,$this->pass,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8") );

}
4

3 に答える 3

5

xmedekoのコメントを指摘させてください。それは絶対に正しいです:

pg_connect("host=localhost options='--client_encoding=UTF8'");

ソース: http://php.net/manual/en/function.pg-connect.php

charset=utf8 を使用すると、mysql で (のみ) 動作します...

于 2014-10-28T22:46:12.427 に答える
3

このページのセクション 21.2.3 にあるように、次の 2 つのコマンドのいずれかを使用できます。

  1. SET CLIENT_ENCODING TO 'value';
  2. SET NAMES 'value';

ここで、値 = UTF8. 使用してみてください:

SET CLIENT_ENCODING TO 'UTF8';

また

SET NAMES 'UTF8';
于 2013-08-15T09:56:31.383 に答える
1

通常の SQL クエリの類似物を見つけるのは非常に簡単です。

$pdo->query("SET NAMES UTF8")

ただし、エンコーディングはとにかく DSN で設定する必要があります

$this->conn = new PDO("pgsql:host=".$this->host.";dbname=".$this->db.";charset=".$this->charset
于 2013-08-15T09:55:24.750 に答える