私の 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();
しかし、これには何百もの既存の関数を編集する必要があります
私が好むオプションを教えてください。クライアントはパフォーマンスと高速読み込みを必要としています