php-改进我的Zend存储过程调用代码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-改进我的Zend存储过程调用代码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1911字,纯文字阅读大概需要3分钟。
内容图文
![php-改进我的Zend存储过程调用代码](/upload/InfoBanner/zyjiaocheng/652/4bc7a6eed315458fb4c825923b2e2bd2.jpg)
我想知道如何改善我的调用存储过程的Zend代码.目前,我正在使用MySQL数据库,并且下面的控制器中的action函数有效,但似乎令人讨厌.
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);
这可能甚至建议吗?
解决方法:
我希望使用模型进行数据访问.另外,我建议您在应用程序的配置文件中定义数据库适配器,以使其对应用程序代码透明,并使用PDO,这样您的应用程序就不必与特定的数据库管理器绑定,以防万一您需要指向数据库中的其他数据库.未来.
例如,除了将所有数据访问逻辑都包含在控制器的操作中之外,还可以将其简化如下:
//within some controller action
$model = MyUbberCoolSuperModel();
$model->myUbberCoolMethod($params);
//And in your model, which can extend Zend_Db_Table_Abstract
public function myUbberCoolMethod($params)
{
$pdo = $this->getAdapter()->prepare("CALL myProcedure(:param)");
$pdo->bindParam(':param', $param, PDO::PARAM_STR);
$pdo->execute();
// Any additional logic you might want to do
}
我认为这种方式更清楚,您的控制器仅负责调用模型上的方法,而模型则负责数据访问.因此,如果需要重构,更改或更改与数据访问相关的任何内容,则可以知道必须使用哪种模型,而不必更改任何可能影响其他因素的控制器操作.
希望能帮助到你
内容总结
以上是互联网集市为您收集整理的php-改进我的Zend存储过程调用代码全部内容,希望文章能够帮你解决php-改进我的Zend存储过程调用代码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。