Trying to 'call' stored procedures with CodeIgniter

后端 未结 2 1654
滥情空心
滥情空心 2020-12-18 13:49

i\'ve this working code with CI:

$this->db->query(\"call nameOfProcedure(\'param1\', @param2)\");
$query = $this->db->query(\'SELECT @param2 as r         


        
2条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-18 14:23

    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

    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 driver in application/config/database.php

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

提交回复
热议问题