PHP的方式执行多个存储过程基于ThinkPHP}{

PHP的方式执行多个存储过程基于ThinkPHP}{
本文演示了PHP如何执行多个存储过程:

从以前使用本机代码时,只需关闭结果集,即
这queryid美元-> ->(关闭);

使用mysqli方法修改dbmysqli.class.php,改变查询功能
公共函数查询($ STR){
这initconnect美元(假);
如果(美元-> _linkid {!)
返回false;
}
美元-> querystr = str;
上一个查询结果释放
如果($,queryid)
$ >(免费);
n('db_query ',1);
开始记录执行时间
G('querystarttime);
queryid =美元->美元-> _linkid ->查询($str);
对存储过程的改进
$ =数组();
$ >(调试);
如果(假=美元,queryid){
$ >(错误);
返回false;
{人}
numrows =美元->美元-> queryid -> num_rows;
numcols =美元->美元-> queryid -> field_count;
ret =美元美元->(得到);
}
主移动,关闭结果集
如果(美元-> _linkid ->(more_results)){
而(($ RES =美元-> _linkid -> next_result())!= NULL){
这queryid美元-> ->(关闭);
}
}
返回$;
}

可以在下面调用一些存储过程,也可以执行其他SQL操作,并且m函数可以直接使用。

使用ThinkPHP时,我们发现,执行多个存储过程只能执行一。查看源代码驱动 / / dbmysql.class分贝,我们处理的存储过程,但是我们不知道为什么它不能运行

用本机代码解决问题(以下代码部分):
$ db =新mysqli(C(db_host )、C(db_user )、C(db_pwd )、C(db_name ));
如果(mysqli_connect_errno())
throw_exception(mysqli_connect_error());
$ T2 =瞬时(真的);
数据库连接时间:。(((T2 - T1美元))。;
ARR =阵列(美元);
第一查询
过程 调用P1();
$结果= $ > >查询($过程);
如果(结果){
通过结果循环
而($行= $结果-> fetch_object()){
添加到对象数组中
ARR { } = $行美元;
}
这里是最重要的,需要移动光标下一组结果
$结果>关闭();
DB—> next_result(美元);
}
$过程调用P2();
$结果= $ > >查询($过程);
如果(结果){
通过结果循环
而($行= $结果-> fetch_object()){
添加到对象数组中
ARR { } = $行美元;
}
这里是最重要的,需要移动光标下一组结果
$结果>关闭();
DB—> next_result(美元);
}

更多的读者感兴趣的ThinkPHP相关内容可以看到这个网站的主题:ThinkPHP入门教程

希望本文有助于基于ThinkPHP框架的PHP程序设计人。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部