Хейльсберг рассказал о причинах отказа от реализации функции в интервью с Брюсом Эккелем.
Я должен признать, однако, что я не знаю, как он думает его предлагаемое решение будет работать. Его предложение - отложить арифметические операции до какого-то другого родового класса (прочитайте интервью!). Как это помогает? ИМХО, не так много.
Itay,
Очень хороший вопрос. К счастью, для Вас ответ очень прост:
database.params.driver_options.1002 = "SET NAMES utf8"
1002 значение постоянного PDO:: MYSQL_ATTR_INIT_COMMAND
Вы не можете использовать константу в config.ini
В Вашем файле начальной загрузки...
$db = Zend_Db::factory($adapter, $config);
$db->query("SET NAMES 'utf8'");
тогда Вы сохраняете этот экземпляр в своем реестре
Zend_Registry::set('db', $db);
бойтесь моего google-fu
$pdo = new PDO(
'mysql:host=mysql.example.com;dbname=example_db',
"username",
"password",
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
первый хит;)
Соединение в zend_db является ленивым, что означает, что соединение выполняется по первому запросу. если у вас есть статическая страница без запроса, она никогда даже не подключится - даже если она инициализирована в вашем файле начальной загрузки.
так запущено:
$ db-> query ("SET NAMES 'utf8'") ;
Не так уж и умно. Большое спасибо dcaunt за его решение.
просто поместите это в свою конфигурацию
database.params.charset = "utf8"
или после ZF 1.11 это будет работать
resources.db.params.charset = utf8
вот и все