php - 如何在 Controller codeigniter中调用多个存储过程?

标签 php mysql codeigniter stored-procedures

当我想在 Controller 中调用多个存储过程时遇到问题。只有一个执行的存储过程。

此查询模型中的存储过程:

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

Controller 中的代码:

function subkategoriedit($id_subkategori = ''){
        $data['kategori'] = $this->madmin->getKategori();
        $data['editsubkategori'] = $this->madmin->getEditSubKategori($id_subkategori);
}

问题是 Controller 中只能调用模型的一个函数。示例:

$data['kategori'] = $this->madmin->getKategori();(成功)

$data['editsubkategori'] = $this->madmin->getEditSubKategori($id_subkategori);(未运行)

错误消息是:

Commands out of sync; you can't run this command now

如果反过来的话。

帮帮我,如何在CodeIgniter中调用多个存储过程?

最佳答案

我不久前遇到了同样的问题,在 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(); 

它对我来说就像一个魅力..

关于php - 如何在 Controller codeigniter中调用多个存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35518511/

相关文章:

PHP PDO 事务回滚不起作用

php - POST 内容长度 167289889 字节超出了 41943040 字节的限制

php - laravel 模型填充多对多表中的附加字段

php - 适用于小批量银行软件的最佳数据库 - PHP

MySQL 转义字符

php - Bcrypt 代码点火器

jquery - 可滚动表格不同宽度列

mysql - Codeigniter 获取所有字段信息

php - Mysql查询疑问

mysql - 获取一个表中的记录,排除另一表中的记录