我想使用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
」爆炸了用戶輸入,所以我在一個數組中有所有的令牌。我仍然在努力尋找解決方案。如果我錯了或有很好的解決方案,請建議我這樣做。
感謝您的幫助。
我們可以看到一些你不那麼先進的嘗試它和借鑑呢? – 2013-02-28 06:13:53
可能的重複:http://stackoverflow.com/questions/10772561/writing-a-php-query-parser-with-regular-expressions – 2013-02-28 06:18:51
我最近有同樣的需要解析查詢字符串,你已經描述成一個SQL語句。這是可能的正則表達式,但我不推薦它,因爲它將是非常笨拙和不靈活。我寫了一個解析器,逐個字符地遍歷字符串,解析表達式。嘗試搜索「php表達式解析器」。您可能需要「自己推出」,但可能有一些源代碼可用於啓動。 – 2013-02-28 06:21:22