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. SQL Serverを使用してソフトウェアバージョンを比較するにはどうすればよいですか?

    2. MariaDBにすべてのストアドプロシージャを一覧表示する方法

    3. エントリを削除しないでください。良いアイデア?いつもの?

    4. SQLServerループ-一連のレコードをループするにはどうすればよいですか