Trying to 'call' stored procedures with CodeIgniter Trying to 'call' stored procedures with CodeIgniter codeigniter codeigniter

Trying to 'call' stored procedures with CodeIgniter


Just in case it helps anyone. I use this library to work with stored procedures in CI, it supports multiple result sets too.

here is the code

I call it Mydb.php

<?php #if ( ! defined('BASEPATH')) exit('No direct script access allowed');class Mydb{   private $CI, $Data, $mysqli, $ResultSet;   /**   * The constructor   */   function __construct()   {     $this->CI =& get_instance();     $this->Data = '';     $this->ResultSet = array();     $this->mysqli = $this->CI->db->conn_id;   }    public function GetMultiResults($SqlCommand)    {    /* execute multi query */    if (mysqli_multi_query($this->mysqli, $SqlCommand)) {        $i=0;        do        {             if ($result = $this->mysqli->store_result())              {                while ($row = $result->fetch_assoc())                {                    $this->Data[$i][] = $row;                }                mysqli_free_result($result);             }            $i++;         }        while ($this->mysqli->next_result());    }    return $this->Data;   }   }?>  

call it like this from controller

$this->load->library('mydb');$arr  = $this->mydb->GetMultiResults("CALL GetReferrals()");

Also, make sure to set mysqli the driverin application/config/database.php

$db['default']['dbdriver'] = 'mysqli';


Check out the docs on call_function. It's for calling functions that aren't native to CI's DB driver, not for calling procedures you've written.

You can check the call_function code in /system/database/DB_driver.php Ln 998 on CI 2.1.0 to see clearly what it's doing.