【发布时间】:2010-04-29 12:15:06
【问题描述】:
我想知道如何改进调用存储过程的 Zend 代码。目前我正在使用 MySQL 数据库,并且下面控制器中的操作功能有效,但看起来很讨厌。
public function callSPAction()
{
$param = $this->_request->getParam('param', 0);
$bootstrap = $this->getInvokeArg('bootstrap');
$config = $bootstrap->getOptions();
$mysqli = new mysqli(
$config['resources']['db']['params']['host'],
$config['resources']['db']['params']['root']['username'],
$config['resources']['db']['params']['root']['password'],
$config['resources']['db']['params']['dbname']);
$rs = $mysqli->query(sprintf('CALL mystoredprocedure(%d)',$param));
if(mysqli_error($mysqli))
{
throw new exception(mysqli_error($mysqli), mysqli_errno($mysqli));
}
$this->_helper->redirector('index', 'index');
}
我更喜欢使用 Zend_DB 类来调用存储过程,但我不确定如何做到这一点?
由于我调用了许多存储过程,我认为最好创建一个帮助类来包装连接到数据库的逻辑。它将公开包装底层存储过程的方法。然后我的控制器代码可以调用
StoredProcedureHelper::callMyStoredProdecure($this->_request->getParam('param', 0);
这可能甚至推荐吗?
【问题讨论】:
标签: php mysql zend-framework stored-procedures