Как сделать PDO выполненными ОПРЕДЕЛЕННЫМИ ИМЕНАМИ utf8 каждый раз, когда я соединяюсь В ZendFramework

Хейльсберг рассказал о причинах отказа от реализации функции в интервью с Брюсом Эккелем.

Я должен признать, однако, что я не знаю, как он думает его предлагаемое решение будет работать. Его предложение - отложить арифметические операции до какого-то другого родового класса (прочитайте интервью!). Как это помогает? ИМХО, не так много.

40
задан Itay Moav -Malimovka 23 June 2009 в 14:49
поделиться

5 ответов

Itay,

Очень хороший вопрос. К счастью, для Вас ответ очень прост:

database.params.driver_options.1002 = "SET NAMES utf8"

1002 значение постоянного PDO:: MYSQL_ATTR_INIT_COMMAND

Вы не можете использовать константу в config.ini

47
ответ дан David Snabel-Caunt 27 November 2019 в 00:58
поделиться

В Вашем файле начальной загрузки...

$db = Zend_Db::factory($adapter, $config);
$db->query("SET NAMES 'utf8'");

тогда Вы сохраняете этот экземпляр в своем реестре

Zend_Registry::set('db', $db);
0
ответ дан patchinko 12 November 2019 в 01:46
поделиться

бойтесь моего google-fu

$pdo = new PDO(
    'mysql:host=mysql.example.com;dbname=example_db',
    "username",
    "password",
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

первый хит;)

121
ответ дан SchizoDuckie 12 November 2019 в 01:46
поделиться

Соединение в zend_db является ленивым, что означает, что соединение выполняется по первому запросу. если у вас есть статическая страница без запроса, она никогда даже не подключится - даже если она инициализирована в вашем файле начальной загрузки.

так запущено:

 $ db-> query ("SET NAMES 'utf8'") ;

Не так уж и умно. Большое спасибо dcaunt за его решение.

4
ответ дан 27 November 2019 в 00:58
поделиться

просто поместите это в свою конфигурацию

database.params.charset = "utf8"

или после ZF 1.11 это будет работать resources.db.params.charset = utf8 вот и все

32
ответ дан 27 November 2019 в 00:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: