白色格子衫 发表于 2018-9-4 11:45:30

CI框架调用存储过程返回多个结果集如何编写?

已知php调用存储过程返回单个结果集\多个结果集以及ci框架返回的单个结果集;
新手不懂如果在ci模型中使用php函数,以致无法实现调用返回的多个结果集

//ci调用存储过程返回单个结果集
//控制器
public function call()
    {   
      $sn = '18071610194745515';
      $res = $this->order_model->getOrderById($sn);
      echo "<pre>";
      print_r($res);
    }
//模型
//调用存储过程 ---返回二维数据结果集
    public function getOrderById($data)
    {
      $sql = "call order_name({$data})";//定义调用的存储过程名称并传入参数
      $query = $this->db->query($sql);//执行sql
      $result = $query->result_array();//获取数据
      $query ->free_result();//释放结果集
      return $result;
    }




//php调用存储过程返回单个结果集,多个结果集
//**************************************************//公共部分
$db = new mysqli('127.0.0.1','root','root','ztong');
if (mysqli_connect_errno()){
    $this->message('数据库连接失败');
}else{
        //echo "连接成功!";
}
$db->query("SET NAMES UTF8");
$param = '18071610194745515';//传入的参数
$rows = array();


//获取返回的单个结果集
$sql = "call order_name($param)";
$query = $db->real_query($sql);
$result = $db->store_result();//检索返回的结果
$row = $result->fetch_assoc();//获取返回的数据
echo "<pre>";
var_dump($row);


//返回多个结果集
$sql = "call order_names($param)";
if ($query = $db->multi_query($sql))//执行多个sql语句
{
    do
    {
      // 存储第一个结果集
      if ($result=$db->store_result())//检索数据
      {
            while ($row=$result->fetch_assoc())//获取结果集
            {
                $rows[] = $row;
            }
      }else{
              break;
      }   
    } while ($db->next_result());//对于多个查询,用此准备下一个结果集
}
//****************************************************************************

白色格子衫 发表于 2018-9-26 20:16:59

存储过程获取多个结果集,有没有ci写法

白色格子衫 发表于 2018-9-27 19:02:43

ci使用存储过程返回多个结果集怎么获取?
页: [1]
查看完整版本: CI框架调用存储过程返回多个结果集如何编写?