如何讓mysql搜索僅僅由用戶以html格式寫入的內容定義,如果某些表單框保持爲空,則mysql應該忽略它。例如:如何使查詢忽略未定義的變量?
$sql = "SELECT * FROM catalog WHERE name= '".$name."' AND publisher = '".$publisher."' ";
mysql_query($sql);
此查詢將顯示名稱和發佈者在一起的所有行。現在,如果用戶只插入名稱,並將發佈者框留空,該怎麼辦。這個想法是,PHP/MySQL忽略空的表單框,並顯示插入名稱的每一行。但它不會這樣做,因爲$ publisher將會是未定義的,並且會出現錯誤。如何告訴musql忽略$ publisher?更一般的問題是:如何生成查詢,使查詢按照某些標準進行定義(如果它們存在),以及它們是否不怎麼忽略它?
如果用戶想要注入他們自己的查詢,那麼讓他們也這樣做... – elclanrs
您需要驗證輸入,並在一系列if語句(或切換案例)之前構建查詢。 – Dave