Nette\Database a charset utf8

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
xxxmisko
Člen | 140
+
0
-

Ahojte!

Je nejako možné nastaviť NetteDatabase tak, aby default charset bol utf8. Db mám totiž v Latin 1 a diakritika je v prdeli, pokial nespravím niečo takéto: SET client_encoding=unicode.

ďakujem za každú radu. PS: DB je postgresql

David Matějka
Moderator | 6445
+
0
-

mohlo by mozna stacit pripojit charset do dsn

dns: 'mysql:host=localhost;dbname=mydb;charset=UTF8'
xxxmisko
Člen | 140
+
0
-

Nefunguje to. V psql vypisuje chybu:

PDOException #7

SQLSTATE[08006] [7] invalid connection option „charset“

Pri mysql funguje korektne.
Asi chybka v psql implementacii, nie?

David Grudl
Nette Core | 8282
+
0
-
xxxmisko
Člen | 140
+
0
-

áno, to je pravda, ale nie v tomto driveri

pgsql som upravil podľa mysql a už mi to ide. Konštruktor som dal takto:

<?php
	public function __construct(Nette\Database\Connection $connection, array $options)
	{
		$this->connection = $connection;
		$charset = isset($options['charset']) ? $options['charset'] : 'utf-8';
		if ($charset) {
		    $connection->query("SET client_encoding TO '$charset'");
		}
	}
?>

Editoval xxxmisko (28. 1. 2014 9:01)