Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Versuch, gespeicherte Prozeduren mit CodeIgniter zu "aufrufen".

Nur falls es jemandem hilft. Ich verwende diese Bibliothek, um mit gespeicherten Prozeduren in CI zu arbeiten, sie unterstützt auch mehrere Ergebnismengen.

Hier ist der Code

Ich nenne es 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;

   }   
}
?>  

nennen Sie es so von Controller

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

Stellen Sie außerdem sicher, dass mysqli eingestellt ist den Treiber in application/config/database.php

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