Mysql
 sql >> Base de données >  >> RDS >> Mysql

Essayer d'"appeler" des procédures stockées avec CodeIgniter

Juste au cas où ça aiderait quelqu'un. J'utilise cette bibliothèque pour travailler avec des procédures stockées dans CI, elle prend également en charge plusieurs ensembles de résultats.

voici le code

Je l'appelle 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;

   }   
}
?>  

appelez-le comme ça depuis le contrôleur

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

Assurez-vous également de définir mysqli le pilote dans application/config/database.php

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