2013-02-28 33 views
0

我想使用PHP代碼創建高級查詢生成器。如何在PHP中構建高級查詢生成器

輸入:

search_String_1 AND(search_String_2 OR search_String_3) ...等等

目標:

檢查和/或運營規則,包括()括號,並轉換成以下字符串: 查詢:

db.table.search_field LIKE ' 
search_String_1' AND (db.table.search_field LIKE 'search_String_2' OR db.table.search_field LIKE 'search_String_3')' 

我的努力:

我使用preg_match(),但我不知道如何通過最佳解決方案檢查所有運算符和查詢序列。另外我用「blank_space」爆炸了用戶輸入,所以我在一個數組中有所有的令牌。我仍然在努力尋找解決方案。如果我錯了或有很好的解決方案,請建議我這樣做。

感謝您的幫助。

+0

我們可以看到一些你不那麼先進的嘗試它和借鑑呢? – 2013-02-28 06:13:53

+0

可能的重複:http://stackoverflow.com/questions/10772561/writing-a-php-query-parser-with-regular-expressions – 2013-02-28 06:18:51

+0

我最近有同樣的需要解析查詢字符串,你已經描述成一個SQL語句。這是可能的正則表達式,但我不推薦它,因爲它將是非常笨拙和不靈活。我寫了一個解析器,逐個字符地遍歷字符串,解析表達式。嘗試搜索「php表達式解析器」。您可能需要「自己推出」,但可能有一些源代碼可用於啓動。 – 2013-02-28 06:21:22

回答

0

請看這堂課。這可能是有用的。

http://www.phpclasses.org/browse/file/12314.html

+0

謝謝你的建議。我查看了你提供的代碼,但必須有我自己需要提供的WHERE條款。我的問題是如何根據用戶的'輸入字符串'創建'WHERE'子句。 – 2013-02-28 06:34:48