[請益] 請問此字串轉換成sql時,程式該如何寫呢?

看板PHP作者 (魚只能甩尾...)時間17年前 (2008/11/06 19:14), 編輯推噓1(104)
留言5則, 1人參與, 最新討論串1/1
要將字串轉成sql語法(where的地方) 字串: ttl/(a and (b or c)) or spec/((d and e) or f) 轉換成: (ttl='a' and (ttl='b' or ttl='c')) or ((spec='d' and spen='e') or spec='f') ttl 跟 spec 是欄位名稱(有固定的所有欄位名稱(約30個),提供使用者可任意填) "/"固定放在欄位名稱後面 a b c d e f 是值(使用者可任意填) 字串輸入的規則是固定這樣,不能改變 請問這中間的轉換程式該如何寫呢? 麻煩各位高手了,謝謝... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.47.76

11/06 21:30, , 1F
好像要用到parsing tree的觀念. 把不是operator的
11/06 21:30, 1F

11/06 21:30, , 2F
oprand 做字串替代最可達成.
11/06 21:30, 2F

11/06 21:31, , 3F
應該有parsing tree generator之類的工具可以運用.
11/06 21:31, 3F

11/06 21:32, , 4F
若找不到, 只好自己寫一個了. 還好sql的where子句結
11/06 21:32, 4F

11/06 21:33, , 5F
構不算複雜, 簡單的parsing應該寫得出來.
11/06 21:33, 5F
文章代碼(AID): #194j6glH (PHP)
文章代碼(AID): #194j6glH (PHP)