Mysql
 sql >> база данни >  >> RDS >> Mysql

Опитвам се да „извикам“ съхранени процедури с CodeIgniter

Само в случай, че ще помогне на някого. Използвам тази библиотека за работа със съхранени процедури в CI, тя също поддържа множество набори от резултати.

ето кода

Наричам го 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;

   }   
}
?>  

наречете го така от контролера

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

Също така, не забравяйте да зададете mysqli драйверът в application/config/database.php

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL AUTO_INCREMENT не се връща назад

  2. Неочаквани резултати от MySQL:IN-клауза (число, 'низ') в колона с varchar

  3. Стойността на часовата зона на сървъра „CEST“ не е разпозната

  4. Преименувайте името на таблицата на Amazon RDS на главна буква, извежда грешка

  5. Кога да извикам bind_param, ако използвам MySQLi подготвени оператори в цикъл?