我正在寫一個大型的SQL查詢基於我從包含搜索參數提交的表單獲取的信息。我只是想知道如果有人有任何建議,最好的方式做到這一點。我打算有一個if else語句的列表,並根據用戶輸入搜索表單的數據構建一個長搜索字符串。mysql,從表單數據構建長的sql查詢。 (php)
有沒有更好的方法來做到這一點?那裏有推薦的網站或教程嗎?
謝謝。
我正在寫一個大型的SQL查詢基於我從包含搜索參數提交的表單獲取的信息。我只是想知道如果有人有任何建議,最好的方式做到這一點。我打算有一個if else語句的列表,並根據用戶輸入搜索表單的數據構建一個長搜索字符串。mysql,從表單數據構建長的sql查詢。 (php)
有沒有更好的方法來做到這一點?那裏有推薦的網站或教程嗎?
謝謝。
您仍然需要擔心意外的SQL注入。不要跳過轉義用戶輸入。
至於實際構建查詢本身:使用php的控制結構連接一系列查詢部分並不罕見,但很多人發現像the Zend Framework這樣的工具非常方便。
首先我會用一個prepared statement因爲沒有理由不,我從來沒有信任的用戶輸入。
如果你在數組或對象中有變量,我只需循環遍歷它並在$_POST
數組中設置變量和值。請注意,我正在循環訪問我的數組或對象 - 不是$_POST
- 它基本上充當白名單。
您可能需要對已更改且未設置的複選框進行一些額外的檢查,因爲它們不會出現在$_POST
陣列中。
+1準備好的陳述前景化 – Toto 2011-05-18 17:32:37
我會試一試。謝謝。 – RayLoveless 2011-05-18 17:38:04
在處理所有特殊情況下,官方的「預備聲明」在這裏有點過分殺人。 「mysql_real_escape_string」在我的情況下工作。 – RayLoveless 2011-05-19 20:04:11
最終目標是什麼?我不確定你想要達到什麼目的。 (順便說一句:是的,你*做*需要擔心sql注入:#1信任的用戶不#2和一個非惡意的錯字可能會打破你的應用程序) – Piskvor 2011-05-18 17:14:15
指出,改變了。我正在構建一個動態搜索查詢。 – RayLoveless 2011-05-18 17:24:17