执行存储过程

$query  = $this -> db -> query('CALL YOU_SP_NAME');

$result = $query -> result();

这个问题不大,就像是执行普通 SQL 语句一样。

使用存储过程遇到的问题

在用了存储过程之后,发现数据库链接并不能使用 持续链接,即 需要把 database.php 里的 $db['pconnect'] 设置为 FALSE,否则会出现链接数据库失败的错误。

另外,当执行完存储过程之后,如果再执行其它的数据库查询,会出现 Commands out of sync; you can't run this command now 错误。

查了下原因,据说是因为执行完存储过程后,没有将结果集给释放掉

CI 中可以通过重连数据库的方法解决:

$this -> db -> reconnect();

如何获得多个结果集

主要是使用 Mysqli 的 multi_query() 来获得

关键代码如下:

$mysqli = new mysqli('localhost', 'USERNAME', 'PASSWORD', 'DBNAME');

$mysqli -> query("SET NAMES utf8");

/* check connection */

if (mysqli_connect_errno()) {

printf('Connect failed: %s\n', mysqli_connect_error());

exit();

}

$query  = 'CALL YOU_SP_NAME';

/* execute multi query */

if ($mysqli -> multi_query($query)) {

do {

/* store first result set */

if ($result = $mysqli -> store_result()) {

while ($row = $result -> fetch_all()) {

$all_result[] = $row;

}

$result -> free();

}

}

while ($mysqli -> next_result());

}

/* close connection */

$mysqli -> close();

codeigniter mysql 存储过程_Codeigniter框架使用Mysql存储过程的例子相关推荐

  1. python能查询MySQL视图_Django框架使用mysql视图操作示例

    本文实例讲述了Django框架使用mysql视图操作.分享给大家供大家参考,具体如下: 一.Mysql视图的创建 MySQL中,在两个或者以上的基本表上创建视图,例如:在StudentOrm表和Inf ...

  2. django mysql视图_Django框架使用mysql视图操作示例

    本文实例讲述了django框架使用mysql视图操作.分享给大家供大家参考,具体如下: 一.mysql视图的创建 mysql中,在两个或者以上的基本表上创建视图,例如:在studentorm表和inf ...

  3. ci mysql 缓存_CodeIgniter框架中启用和清除缓存的教程

    CodeIgniter框架启动与缓存问题许多的新手都不知道如何来操作了,下面我们就一起来看一篇关于CodeIgniter框架中启用和清除缓存例子,具体如下所示. Codeigniter支持缓存技术,以 ...

  4. MySQL 学习笔记(6)— 存储过程创建、调用、删除以及带参数的存储过程

    1. 存储过程总结 存储过程是一种存储在数据库中的程序.它可以包含多个 SQL 语句,并提供许多过程语言的功能,例如变量定义.条件控制语句.循环语句.游标以及异常处理等. 1.1 存储过程优点 实现代 ...

  5. mysql中leave和_MySQL数据库之Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法

    本文主要向大家介绍了MySQL数据库之Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. DELIMITER ...

  6. mysql 存储过程 格式化_转 mysql 存储过程初探

    https://www.cnblogs.com/qmfsun/p/4838032.html MySQL命令执行sql文件的两种方法 https://www.cnblogs.com/mark-chan/ ...

  7. mysql的存储过程与事务_mysql的存储过程与事务入门

    存储过程是: 通过一系列的SQL语句, 根据传入的参数(也可以没有), 通过简单的调用, 完成比单个SQL语句更复杂的功能, 存储在数据库服务器端,只需要编译过一次之后再次使用都不需要再进行编译.主要 ...

  8. mysql命令导入存储过程报错_mysql导入存储过程时declare报错的有关问题解决

    在导入存储过程时经常遇见下列DECLARE报错的问题: ? Error Code : 1064 You have an error in your SQL syntax; check the manu ...

  9. MySQL(十一)视图及存储过程

    一.视图 视图是虚拟的表,它只包含使用时动态检索数据的查询. 1.使用视图的好处 ①重用SQL语句: ②简化复杂的SQL操作(可以方便的重用它而不必知道它的基本查询细节): ③使用表的组成部分而不是整 ...

最新文章

  1. 安装cuda时出现 non 7z achive. 报错解决办法 安装文件损坏
  2. Spring.io本地服务器解决超时问题
  3. vscode导入本地jar包_go导入本地包踩坑(已解决!)
  4. python字典键值可以是元组或列表吗_Python列表、元组、字典、集合的内置使用方法...
  5. 华为Mate30 Pro高清渲染图曝光:后置四摄+挖孔全面屏
  6. 利用HttpWebRequest实现实体对象的上传
  7. 百度怎么进行模糊搜索_怎么在百度上准确搜索,提高10倍效率?
  8. HDOJ 1166 HDU 1166 敌兵布阵 ACM 1166 IN HDU
  9. (转)Palantir: 神秘的大数据公司
  10. 免费的3D GIS 软件,特点与应用领域介绍
  11. HALCON学习笔记 1
  12. 华为存储学习笔记-3
  13. html屏幕共享,屏幕共享
  14. 幻方矩阵(魔方矩阵)
  15. 解决虚拟机桥接模式无法上网的问题
  16. 海盗分赃问题-----简化问题,分而治之
  17. php 调用格式工厂,格式工厂能转换kux吗?
  18. 在线身份证号码提取生日工具
  19. PSPNet 算法笔记
  20. 排名前10的十大人力资源管理系统

热门文章

  1. SSAS : 如何编写自定义挖掘算法
  2. CNCF Weekly:OCM 成为 CNCF 沙箱项目
  3. Web XR 混合现实浏览器
  4. ES6、ES7、ES8、ES9、ES10 新特性ECMAScript版本简介
  5. IIS和Tomcat共用80端口的解决方案
  6. 腾控Multiprog 使用问题 (持续更新)
  7. 微信公众号完美解决关注后三次获取media_id重复3次的问题
  8. miui锁屏通知显示android,MIUI10系统又更新了!新增勿扰锁屏通知功能,修复系统Bug...
  9. 比特币交易信息 广播 服务器,《比特币白皮书》区块圣经(3)时间戳服务器(Timestamp serv...
  10. 云栖社区 mysql_mysql