当我想在控制器中调用多个存储过程时,我遇到了问题。只有一个存储过程执行。
此查询存储过程在模型中:
function getKategori(){
$query = $this->db->query("call KategoriSelectPro('id_kategori','kategori')");
return $query->result();
}
function getEditSubKategori($id_subkategori){
$query = $this->db->query("call SubKategoriEditSelectPro(?,'id_kategori','kategori','sub_kategori')", $id_subkategori);
return $query->row_array();
}
和控制器中的代码:
function subkategoriedit($id_subkategori = ''){
$data['kategori'] = $this->madmin->getKategori();
$data['editsubkategori'] = $this->madmin->getEditSubKategori($id_subkategori);
}
问题是只能在控制器中调用模型的一个功能。例如:
$data['kategori'] = $this->madmin->getKategori();
(成功)
$data['editsubkategori'] = $this->madmin->getEditSubKategori($id_subkategori);
(不运行)
错误消息是:
命令不同步;你现在不能运行这个命令
所以如果逆转。
帮助我,如何在CodeIgniter中调用多个存储过程?
答案 0 :(得分:1)
一会儿我遇到了同样的问题,在stackoverflow上搜索了它,找到了答案,却忘了给答案打分..
在文件中添加以下功能 系统>数据库>驱动程序> mysqli> mysqli_driver.php
function next_result()
{
if (is_object($this->conn_id))
{
return mysqli_next_result($this->conn_id);
}
}
,然后在您执行的每个调用查询之后添加以下命令。
$this->db->next_result();
对我来说就像是一种魅力..
答案 1 :(得分:0)
更改返回$ query-> row_array();返回$ query-> result_array();
function getKategori(){
$query = $this->db->query("call KategoriSelectPro('id_kategori','kategori')");
return $query->result();
}
function getEditSubKategori($id_subkategori){
$query = $this->db->query("call SubKategoriEditSelectPro(?,'id_kategori','kategori','sub_kategori')", $id_subkategori);
return $query->result_array();
}