[心得] codeigniter的A_RECORD,where_in的問題
首先如果會使用物件的回傳串連法:
例:
$this->db->where('id',$id)->get('user');
如果你有這種習慣的在使用where_in時請注意。
where_in()、where_not_in()
他們的內部私有成員判斷當參數1和參數2均為無值時。
他回傳只有下return;
而非return $this;
這會導致如果你的第二參數是屬於自動給值的情形下。
萬一無值時就會導致物件無法回傳。
從那之後開始的所有串連寫法都會出錯。
解決方法有三:
1、本來就不使用串連法的不會有這種問題。
2、在給值之前,先自行判斷是否為空值,來避開這個問題。
3、如果你覺得ok,其實你可以考慮去核心把return $this加回去。
第3點我加過測試雖然無誤,但在不擅自改核心的情形下我又還原了他。
然後我是採取第2點的做法來避開無值造成的結果。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 175.180.97.168
推
06/16 20:27, , 1F
06/16 20:27, 1F
推
06/16 23:45, , 2F
06/16 23:45, 2F
→
06/16 23:46, , 3F
06/16 23:46, 3F
→
06/16 23:47, , 4F
06/16 23:47, 4F
→
06/16 23:47, , 5F
06/16 23:47, 5F
→
06/16 23:47, , 6F
06/16 23:47, 6F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章