3

db プレフィックスを使用するようにコード イグナイターを構成しました。

他のすべての場所では期待どおりに動作していますが、テーブル エイリアスの作成中に db プレフィックスが付加されます。

コードは次のとおりです:-

$this->db->from('table_a');
$this->db->join('table_b', 'table_a.id = table_b.a_id', 'left');
-----
$this->db->join('table_b as tablebAlias', 'table_c.id = tablebAlias.a_id', 'left');

私のdbprefixが値「foo」に設定されていると仮定します。

実行される最終的なクエリは次のとおりです。

Select * From foo_table_a left join foo_table_b on foo_table_a.id = foo_table_b.a_id
--- left join foo_table_b as tablebAlias on foo_table_c.id = foo_tablebAlias.a_id

どんな助けも非常に高く評価されます。

ありがとう、ジャティン

4

1 に答える 1

9

手動クエリはテーブルプレフィックスを無視することがわかりました。また、手動クエリにテーブルプレフィックスを追加する方法があることもわかりました。

config/database.php内

これを行うことができます:

$db['default']['dbprefix'] = "feed_";  
$db['default']['swap_pre'] = "{PRE}";

これを行うことができるように:

$sql = "SELECT * FROM {PRE}item";  
$query = $this->db->query($sql); 

{PRE}はfeed_になります。

しかし、swap_preはconfig.phpではないため、これはCI2.0の機能であると思われます。

于 2012-05-23T09:40:57.820 に答える