当前位置:  开发笔记 > 编程语言 > 正文

Zend存储过程

如何解决《Zend存储过程》经验,为你挑选了1个好方法。

我有这个代码在ZEND中调用存储过程.有没有办法打印将被执行的SQL命令?

$sp = $dbAdapter->prepare('CALL updateResultsByEvent(?, ?, ?, ?)');
$sp->bindParam(1,$id);
$sp->bindParam(2,$event->name);
$sp->bindParam(3,$event->distance);
$sp->bindParam(4,$event->unit);
// print $sp;????
$sp->execute();

我正在尝试验证参数值是否正确传递.

#0 C:\projects\ABC\library\1.9.2\Zend\Db\Statement.php(284): Zend_Db_Statement_Mysqli->_execute(NULL)
#1 C:\projects\ABC\application\controllers\AdminController.php(53): Zend_Db_Statement->execute()
#2 C:\projects\ABC\library\1.9.2\Zend\Controller\Action.php(513): AdminController->updateleagueresultsbyeventAction()
#3 C:\projects\ABC\library\1.9.2\Zend\Controller\Dispatcher\Standard.php(289): Zend_Controller_Action->dispatch('updateleagueres...')
#4 C:\projects\ABC\library\1.9.2\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#5 C:\projects\ABC\library\1.9.2\Zend\Application\Bootstrap\Bootstrap.php(77): Zend_Controller_Front->dispatch()
#6 C:\projects\ABC\library\1.9.2\Zend\Application.php(346): Zend_Application_Bootstrap_Bootstrap->run()
#7 C:\projects\ABC\public\index.php(29): Zend_Application->run()
#8 {main}

Bill Karwin.. 6

MySQL向其通用查询日志输出SQL查询的模型,其中插入了参数值.但除此之外,您无法在执行时获取SQL,并结合参数值.您需要了解准备好的查询的工作原理:

准备期间,SQL查询被发送到RDBMS服务器,在那里它被解析和优化并存储在内部表示中 - 通常不再是SQL语句.在您的示例中准备的SQL是'CALL updateResultsByEvent(?, ?, ?, ?)'.

执行期间,参数值被发送到RDBMS服务器,在那里它们与内部查询表示相结合.RDBMS在内部将可读的SQL与可执行查询分开.如果您选择再次执行该语句,则可以更轻松地替换不同的参数值.它还可以防止参数值导致SQL注入错误的任何可能性.

通常,您无法以人类可读的形式获得"真正的"SQL查询,因为参数永远不会以执行的形式与查询组合.



1> Bill Karwin..:

MySQL向其通用查询日志输出SQL查询的模型,其中插入了参数值.但除此之外,您无法在执行时获取SQL,并结合参数值.您需要了解准备好的查询的工作原理:

准备期间,SQL查询被发送到RDBMS服务器,在那里它被解析和优化并存储在内部表示中 - 通常不再是SQL语句.在您的示例中准备的SQL是'CALL updateResultsByEvent(?, ?, ?, ?)'.

执行期间,参数值被发送到RDBMS服务器,在那里它们与内部查询表示相结合.RDBMS在内部将可读的SQL与可执行查询分开.如果您选择再次执行该语句,则可以更轻松地替换不同的参数值.它还可以防止参数值导致SQL注入错误的任何可能性.

通常,您无法以人类可读的形式获得"真正的"SQL查询,因为参数永远不会以执行的形式与查询组合.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有