2014-05-11 38 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 . "' 

");