你的位置:面向PHP >> 资讯 >> 开发框架 >> ZendFramework >> 详细内容 在线投稿

使用ZendFramework的时候打印SQL

热度158票  浏览73次 【共0条评论】【我要评论 时间:2009年6月10日 22:14
在使用ZendFramework开发的时候,会遇到要对SQL进行优化的处理,但是从ZEND的DB类里并没有找到输出SQL的方法,唯一看到的输出也 是在SELECT类里面有一个__toString()的方法,但这个方法也只能输出SELECT的语句,对于Insert,Update,Delete 之类的语句并不能处理。
ulqXo P"Q y0 面向PHPz'm-lHyO.?4a
开始的时候,很郁闷,后来问HaoHappy,因为他是国内第一批翻译ZF手册的人,果然我一问,他一下子就说,有一个Profiler类可以解决。面向PHPC Yz9J"W%?,Z
翻开手册,Zend_Db_Profiler,里面果然有操作。。(注:类名是凭记忆的,以下内容也是凭记忆写出来的)面向PHP9FV'EomVJ7}*qAlf,u
面向PHP A g5IIRs/N
1、在DB的CONFIG里面把profiler打开,如果没有打开,则需要用$profiler =  $db->getProfiler();然后 $profiler->setEnable(true); (好象记错了,请看手册,我这里只说解决方法)
K*t J Z.x$mB-]q0
k+_Q8W)vane/N&c0 2、然后有一个设置 Profiler 的filter条件的,可以设定select,insert,update,delete的操作。面向PHPG~}W@6@5E

A-F6y2Y1N{c0 3、然后根据官方的例子,对SQL进行输出(手册上的例子,只是输出了执行时间最长的SQL哦)。如果需要每条都输出,你得在那个 if 判断外把sql 存储下来,即 $query->getQuery(); 面向PHP_'ux"j8Y.j'_:~/\&x(|
面向PHP$D%R/R:YJG
4、根据手册,还可以输出到fireBug和利用FirePHP来进行类似的debug,但我试了一下没有成功(  QEE 支持 firePHP ,不知道是否借鉴了ZEND的这个功能,猜测而己 )面向PHPy X'vW-_ke$e

:YG [8?&j;I,p ~0 纯粹是一个记录,顺便感谢一下HaoHappy
TAG: SQL 打印
顶:14 踩:11
对本文中的事件或人物打分:
当前平均分:-0.54 (48次打分)
对本篇资讯内容的质量打分:
当前平均分:0.2 (45次打分)
【已经有40人表态】
12票
感动
2票
路过
4票
高兴
3票
难过
6票
搞笑
3票
愤怒
5票
无聊
5票
同情
上一篇 下一篇
发表评论

网友评论仅供网友表达个人看法,并不表明本网同意其观点或证实其描述。

查看全部回复【已有0位网友发表了看法】