「靜態」查詢始終保持不變。例如,Stackoverflow上的「標籤」按鈕或Digg上的「7天」按鈕。簡而言之,它們總是映射到特定的數據庫查詢,因此您可以在設計時創建它們。如何創建動態和安全的查詢
但我想弄清楚如何做「動態」查詢,其中用戶基本上決定如何在運行時創建數據庫查詢。例如,在Stackoverflow上,您可以組合標籤並按照您選擇的方式過濾帖子。這是一個動態查詢,儘管它非常簡單,因爲您可以將它們組合在標籤的世界中。一個更復雜的例子是如果你可以結合標籤和用戶。
首先,當你有一個動態查詢時,聽起來好像你不能再使用替代api來避免sql注入,因爲查詢元素將取決於用戶決定包含在查詢中的內容。除了使用字符串追加之外,我無法看到如何構建此查詢。
其次,查詢可能跨越多個表。例如,如果SO允許用戶基於用戶和標籤進行過濾,並且這些可能位於兩個不同的表中,那麼構建查詢會比僅追加列和WHERE子句複雜一些。
我該如何去執行這樣的事情?
爲了建議抽象: 你用什麼語言與數據庫交談? 您正在使用哪個數據庫? – 2008-11-10 20:14:00