【发布时间】:2009-10-23 16:52:17
【问题描述】:
我希望查询“SET NAMES utf8”在任何其他查询之前执行。
但是,如果我在应用程序的开头执行它,它会强制 Zend_Db 连接到数据库,即使我没有运行任何其他查询。这并不酷:我的应用处理大量请求而没有任何查询,只使用缓存。
如何让 Zend_Db 在连接后立即运行 'SET NAMES utf8'?
【问题讨论】:
我希望查询“SET NAMES utf8”在任何其他查询之前执行。
但是,如果我在应用程序的开头执行它,它会强制 Zend_Db 连接到数据库,即使我没有运行任何其他查询。这并不酷:我的应用处理大量请求而没有任何查询,只使用缓存。
如何让 Zend_Db 在连接后立即运行 'SET NAMES utf8'?
【问题讨论】:
当然,只需将 'charset' 选项与适配器参数一起传递。您可以通过 Zend_Config 或在代码中执行此操作:
$params = array(
'host' => '127.0.0.1',
'username' => 'webuser',
'password' => 'xxxxxxxx',
'dbname' => 'test',
'charset' => 'utf8'
);
$db = Zend_Db::factory('Pdo_Mysql', $params);
参考:http://framework.zend.com/manual/en/zend.db.html#zend.db.adapter.connecting.parameters
【讨论】:
【讨论】: