views:

71

answers:

2

I want the query 'SET NAMES utf8' to execute before any other queries.

But, if I execute it in the beginning of my app, it forces Zend_Db to connect to the Database, even if I'm not running any other queries. It isn't cool: My app processes lots of requests without any queries, only using cache.

How to ask Zend_Db to run 'SET NAMES utf8' right after connection?

+2  A: 

Sure, simply pass the 'charset' option in with the adapter params. You can do this via Zend_Config or in code:

$params = array(
    'host'           => '127.0.0.1',
    'username'       => 'webuser',
    'password'       => 'xxxxxxxx',
    'dbname'         => 'test',
    'charset'        => 'utf8'
);

$db = Zend_Db::factory('Pdo_Mysql', $params);

Reference: http://framework.zend.com/manual/en/zend.db.html#zend.db.adapter.connecting.parameters

David Caunt
Oh thank you. I'm gonna write RTFM on my monitor :)
valya
Np - it's not explicitly covered in the manual, but a common requirement for sure! More questions on SO will make it easier for everyone :)
David Caunt
A: 

check this link for config option , its more easier How to make PDO run SET NAMES utf8 each time I connect, In ZendFramework.

tawfekov