最近用CI框架遇到一個問題。2個前提條件:
1、數據庫設計不規范,有的有表前綴(如:ck_table1),有的沒有(如:table2)或者表前綴不一樣;
2、數據庫操作又想使用數據庫操作語句querybuilder;
當然,有的人會說,表都加上前綴,統一一下不就行了,我想說,如果你其他地方的代碼怎么辦,比如已經開發好的一個項目?再去改?累死你。。。 還有人說數據庫操作使用原生的不就行了?不好意思,本人有一個強迫症,就想知道到底可不可以處理。只為解決問題提供方法。如果覺得受不了的話,請自行繞過。。。。
解決辦法:
1、數據庫默認表前綴為空,querybuilder時 表寫全名;
2、數據庫默認表前綴不為空時,在querybuilder 之前重設 表前綴
$this->db->set_dbprefix(); $query = $this->db->limit(1) ->get('table2');// 直接寫表全名 $res = $query ->result_array(); $last_query = $this->db->last_query(); var_dump($res); var_dump($last_query); $this->db->set_dbprefix("ck_");
這里需要注意一下,執行完之后,一定要在重新把表前綴給改回來,否則會影響后續的查詢。。。。