0

dbutilとdbに問題があります。以下は私のコード(私のモデルのコンストラクター)です:

public function __construct(){
    // I save my database configuration in CI session
    $this->load->library('session');
    $config = $this->session->userdata("db_config");
    if($config){ // $config is now equal contains of my database configuration
        $this->db = $this->load->database($config, TRUE);
    }else{
        $this->db = $this->load->database();
    }       
    $this->load->dbutil();
    echo '<pre>'.print_r($this->db, TRUE).'</pre>';
    echo '<pre>'.print_r($this->dbutil, TRUE).'</pre>';
}

$this->dbと$this->dbutilが異なるデータベースを指していることがわかりました。

$ this-> dbは、セッションからのデータベース構成を指します。

....
[username] => root
[password] => toor
[hostname] => localhost
[database] => coba
....

$ this-> dbutilが構成ファイル(application / config / database.php)からデータベース構成を指している間:

....
[username] => root
[password] => toor
[hostname] => localhost
[database] => module_devel
....

$this->dbと$this->dbutilの両方が同じデータベースを指していると予想されるため、これは予期されていません。

PHPもチェックしました:CodeIgniter; 2つのdb接続の管理。変数データベースパラメータ。しかし、私にとっては、解決策はまったく機能しません。

だから、誰もがここで何が悪いのかを発見できますか?

4

1 に答える 1

0

CodeIgniterのバグのようです。ただし、使用できるのはdbutilだけではありません。dbutilが実行できることをエミュレートするための多くの選択肢があります。

私の場合、「テーブルの作成」スクリプトを生成したいと思います。私は使用することになります

 $query = $this->db->query("SHOW CREATE TABLE `$table_name`");

また、SQL挿入スクリプトを生成するために、手動で選択し、レコードをループしてスクリプトを作成します。

これが同様の問題を抱えている他の人に役立つことを願っています

于 2012-08-18T14:01:19.793 に答える