用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5219|回复: 4
收起左侧

[已解决] codeigniter 调用存储过程出错

[复制链接]
发表于 2010-7-1 12:08:15 | 显示全部楼层 |阅读模式
存储过程:

SQL复制代码
delimiter //
CREATE PROCEDURE sp_pro()
BEGIN
SELECT * FROM product ORDER BY TIMESTAMP DESC LIMIT 0,10;
END
//
复制代码


在cmd里直接call sp_pro();成功返回信息。当我在模型层里:

PHP复制代码
 
function test($number){
  $latest = array();
   $query=$this->db->query("call sp_pro()");
  if ($query->num_rows() > 0){
   foreach($query->result() as $item) {
    $latest[] = $item;
   }
  }
  $query->free_result();
  return $latest;
 }
 
复制代码

时,却报错误信息:
A Database Error Occurred
Error Number: 1312
PROCEDURE ledb2b.sp_pro can't return a result set in the given context
call sp_pro()

请大家帮忙解答下是什么情况,谢谢!
发表于 2010-7-2 00:09:31 | 显示全部楼层
本帖最后由 visvoy 于 2010-7-2 00:10 编辑

股沟了一下,找到别人的解决办法,不知对楼主有帮助否:
关键就是两点
  1)define('CLIENT_MULTI_RESULTS', 131072);
  2)$link = mysql_connect("127.0.0.1", "root", "",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());

貌似要扩展db类
 楼主| 发表于 2010-7-5 10:06:42 | 显示全部楼层
嗯,是的,多谢了。我摆渡了一下,可以改动db驱动为mysqli,开启php.ini相关dll,重启apache就可以了
发表于 2010-7-6 16:28:35 | 显示全部楼层
回复 3# array


    一直使用的是mysqli
发表于 2010-7-14 09:57:29 | 显示全部楼层
本帖最后由 ici 于 2010-7-14 09:59 编辑
回复  array


    一直使用的是mysqli
longjianghu 发表于 2010-7-6 16:28


$db['default']['dbdriver'] = "mysqli";
除了这里改动,哪里还需要修改吗?
之前一直用的是mysql ,上次换了一个mysqli 之后页面都是空白了,不知道怎么回事?

本版积分规则