Re: [討論] PHP、HTML、css的切割

看板PHP作者 (皮皮快跑)時間13年前 (2012/10/05 14:06), 編輯推噓3(302)
留言5則, 4人參與, 最新討論串3/3 (看更多)
※ 引述《LaPass (LaPass)》之銘言: : 想到另一種狀況 : 也是讓我很頭痛的.... : 就是,SERVER跟資料庫連接的話,總是有很高的機率出現這種東西 : $Sql=" SELECT * FROM USER WHERE (1=1) "; : if(條件1) : { : $Sql.=" AND CLASS IN (".$SomeClass.") "; : } : if(條件2) : { : $Sql.=" AND TECHER IN (".$SomeOne.") "; : } : ........... : if裡面可能會有更多的判斷式 : 或是用while for組合出其他SQL命令的判斷式 : 甚至可能會使用union結合其他table的狀況 : 請問有方法讓這種狀況乾淨一點嗎? 本來想用推文繼續但我想用回文好了。(推文不合適貼CODE) $Sql=" SELECT * FROM USER WHERE (1=1) "; $Sql .= dbWhere('條件1','CLASS',$SomeClass); $Sql .= dbWhere('條件2','TEACHER',$SomeOne); function dbWhere($bool,$field,$value){ $sql = false; if($bool === true){ $sql = " AND {$field} IN ($value)"; } return $sql; } 上面只是一個例子。 假如說你的sql字串本身就是一群複雜的條件的確不易處理。 唯一能做的就是把這一群處理另案放在函式中判斷。 而不是用在主程式使用。 通常主程式還是維繫他乾淨的流程就好。 本來在資料庫串聯語法這件事就有很多吃力不討好的工作。 像ci也是,他是提供基本的active record。 一般的工作來說是可以滿足。 但有的時候就偏偏需要子查詢,或是特殊的資料排列在取出。 往往遇到這種的我就只能用$this->db->query()自己硬幹sql語句。 sql......真是讓人又愛又恨。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.156.119

10/05 14:08, , 1F
同意.....
10/05 14:08, 1F

10/05 14:08, , 2F
說真的, 我不愛用ActiveRecord. 很多東西DB可以處理掉
10/05 14:08, 2F

10/05 17:56, , 3F
我都自己刻 active record 來自嗨...XD 避掉一堆問題...
10/05 17:56, 3F

10/06 19:40, , 4F
CI 3.0 沒有 Active Record 了 換成 Query Builder
10/06 19:40, 4F

10/06 19:41, , 5F
換名字而已,大家別誤會
10/06 19:41, 5F
文章代碼(AID): #1GRdZ9Nd (PHP)
討論串 (同標題文章)
文章代碼(AID): #1GRdZ9Nd (PHP)