|
已知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());//对于多个查询,用此准备下一个结果集
}
//****************************************************************************
|
|