array 发表于 2010-7-1 12:08:15

codeigniter 调用存储过程出错

存储过程:

delimiter //
create procedure sp_pro()
begin
select * from product order by timestamp desc limit 0,10;
end
//

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


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()

请大家帮忙解答下是什么情况,谢谢!

visvoy 发表于 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类

array 发表于 2010-7-5 10:06:42

嗯,是的,多谢了。我摆渡了一下,可以改动db驱动为mysqli,开启php.ini相关dll,重启apache就可以了

longjianghu 发表于 2010-7-6 16:28:35

回复 3# array


    一直使用的是mysqli

ici 发表于 2010-7-14 09:57:29

本帖最后由 ici 于 2010-7-14 09:59 编辑

回复array


    一直使用的是mysqli
longjianghu 发表于 2010-7-6 16:28 http://codeigniter.org.cn/forums/images/common/back.gif

$db['default']['dbdriver'] = "mysqli";
除了这里改动,哪里还需要修改吗?
之前一直用的是mysql ,上次换了一个mysqli 之后页面都是空白了,不知道怎么回事?
页: [1]
查看完整版本: codeigniter 调用存储过程出错