3
我在想如何改進我的調用存儲過程的Zend代碼。目前我使用的是MySQL數據庫,下面我的控制器中的動作函數可以工作,但似乎令人討厭。改進我的Zend存儲過程調用代碼
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);
這是可能的甚至是推薦的嗎?