1

私の codeigniter プロジェクトの 1 つで、複数のデータベースに接続したいと考えています。私は複数に接続し、正常に動作しています。

リニューアルという一大プロジェクト。複数のデータベースなどからデータを再構築して取得する必要がある手段。

大きいので、既存のデータベースクエリは次のとおりです

model.php

    $res=mysql_query("select * from news order by date DESC LIMIT 0,10");
    while($r=mysql_fetch_array($res)){
          echo '<li><div class="newshead"><a href="'.site_url('movie-news/'.$r['id'].'/'.$r['seo']).'">'.$r['heading'].'</a></div><img alt="'.$r['heading'].'" align="left" src="share/news/'.$r['thumb'].'" /><p>'.stripslashes(strip_tags(substr($r['news'],0,150))).'</p><br/> <a class="readmore" href="'.site_url('movie-news/'.$r['id'].'/'.$r['seo']).'">Read More</a></li>';
         }

だから私は設定に2つのデータベースを追加し、このようにdbに接続しました

    $this->load->database('default', TRUE);
    $res=mysql_query("select * from news order by date DESC LIMIT 0,10");
    while($r=mysql_fetch_array($res)){
             echo '<li><div class="newshead"><a href="'.site_url('movie-news/'.$r['id'].'/'.$r['seo']).'">'.$r['heading'].'</a></div><img alt="'.$r['heading'].'" align="left" src="share/news/'.$r['thumb'].'" /><p>'.stripslashes(strip_tags(substr($r['news'],0,150))).'</p><br/> <a class="readmore" href="'.site_url('movie-news/'.$r['id'].'/'.$r['seo']).'">Read More</a></li>';
    }

このクエリのような数百の関数を取得しました。私の実際の質問は、コンストラクターでデータベースを追加/接続することです。各関数にデータベースを追加しました。そこから、どのデータベースからデータを取得するかが通知されます。

サイトのパフォーマンスに影響しますか (各関数から DB に接続した場合)

実際に私はこのようにコーディングしました

Class Tickets extends CI_Model {

    function __construct() {
        parent::__construct();
         $this->db =$this->load->database('users', TRUE);
         $this->gen = $this->load->database('default', TRUE);
    }


function getSlidingThumb(){
    $this->gen->select('*');
    $this->gen->from('front_slide');
    $this->gen->order_by("id", "ASC");
    $query = $this->gen->get();
    $thumbs = $query->result();

    foreach($thumbs as $thu){
       echo '<li><a href="javascript:;"><img  src="share/home/t-'.$thu->image.'" alt="'.$thu->title.'" width="45" height="23" border="0"/></a> </li>'; 

    }
  }

この場合、コンストラクターで db を一度だけ接続し、このようにクエリを実行する必要があります。$query = $this->gen->get();

しかし、これには何百もの既存の関数を編集する必要があります

私が好むオプションを教えてください。クライアントはパフォーマンスと高速読み込みを必要としています

4

1 に答える 1