Mysql
 sql >> Database >  >> RDS >> Mysql

Tentativo di "chiamare" le stored procedure con CodeIgniter

Nel caso in cui aiutasse qualcuno. Uso questa libreria per lavorare con le stored procedure in CI, supporta anche più set di risultati.

ecco il codice

Lo chiamo 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;

   }   
}
?>  

chiamalo così dal controller

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

Inoltre, assicurati di impostare mysqli il driver in application/config/database.php

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