2014-05-11 37 views
0

我想從一個站點提交查詢以從MySQL數據庫中檢索某些記錄。當我從網站表單執行查詢時,當我知道它不是空的時候,我得到了'無效查詢:查詢是空的'的mysql_error()返回結果。前端查詢和PHP SQL語句

$Level = $_POST['level']; 
$Year = $_POST['year']; 
$Name = $_POST['name']; 
$Award = $_POST['award']; 

$query = mysql_query("SELECT * 
    FROM wineawards 
    WHERE LEVEL = $Level 
     OR YEAR = $Year 
     OR name = $Name 
     OR award = $Award 

    "); 

$result = mysql_query($query); 

不知道如果我在這裏丟失的東西,或輸入錯誤的東西?

+0

經常檢查您提交值,並用單引號包住你的變量這樣的'「$ Level'','」 $ Year''..and別人 –

+0

年份是列? – underscore

+2

**危險**:您正在使用[an **過時的**數據庫API](http://stackoverflow.com/q/12859942/19068),並應使用[現代替換](http:// php。淨/手動/ EN/mysqlinfo.api.choosing.php)。你也**易受[SQL注入攻擊](http://bobby-tables.com/)**,現代的API會使[防禦]更容易(http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)自己從。 – Quentin

回答

0
$query = mysql_query("SELECT * 
    FROM wineawards 
    WHERE LEVEL = '$Level' 
     OR YEAR = '$Year' 
     OR name = '$Name' 
     OR award = '$Award' 

    "); 

$result = mysql_query($query); 
+0

爲什麼這不提供答案 – user3470953

+0

我相信我誤解了這個問題,我正在更新我的建議 – Claies

0

這是怎麼回事?

$query = mysql_query("SELECT * 
    FROM wineawards 
    WHERE LEVEL = '" . $Level . "' 
    OR YEAR = '" . $Level . "' 
    OR name = '" . $Name . "' 
    OR award = '" . $Award . "' 

");