Muhammad Aziiz
Muhammad Aziiz

Reputation: 61

How to call multiple store procedure in controller codeigniter?

I have a problem when I want to call more than one stored procesure in the controller. just only one stored procedure that execute.

This query stored procedure in the model :

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

and this code in controller:

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

The problem is only one function of the model can be called in the controller. example:

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

$data['editsubkategori'] = $this->madmin->getEditSubKategori($id_subkategori); (NOT RUN)

The error message is :

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

so if reversed.

help me, how to call multiple store procedure in CodeIgniter?

Upvotes: 1

Views: 1162

Answers (2)

Numan
Numan

Reputation: 127

I had the same problem a couple of moments earlier, searched for it on stackoverflow, found the answer and forgot to rate the answer .. anyhow

add the following function in file system > database > drivers > mysqli > mysqli_driver.php

function next_result()
    {
        if (is_object($this->conn_id))
        {
            return mysqli_next_result($this->conn_id);
        }
    }

and then add the following command after every calling query you perform.

$this->db->next_result(); 

it worked like a charm for me ..

Upvotes: 1

Aslam Patel
Aslam Patel

Reputation: 894

in your model change return $query->row_array(); to return $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();
}

Upvotes: 0

Related Questions