MySQL搜索中的语法错误,显示正确

时间:2013-06-17 18:04:50

标签: php mysql sql

我的MySQL查询语法错误令我感到困惑。据我所知,这似乎是正确的工作方式,我确信我的表名和变量都是正确的。

所以这是我收到的错误;

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND `date` = ORDER BY 'scriptno' ASC' at line 3`

这里的代码似乎是问题[但据我所知,它不是......

$data = mysql_query("SELECT script FROM `tableoscripts` WHERE `event` = $_GET[$eventq] AND `date` = $_GET[$dateq] ORDER BY 'scriptno' ASC") or die ('Error: '.mysql_error ());

如果您想知道上一页是使用get方法前往此页面,并且提交后详细信息显示在地址栏中。

6 个答案:

答案 0 :(得分:3)

您需要引用您的值:

...WHERE `event` = '$_GET[$eventq]' AND `date` = '$_GET[$dateq]'...

请注意,在查询中使用未过滤的用户数据是危险的。有关SQL注入攻击和缓解信息,请参阅http://bobby-tables.com/

答案 1 :(得分:2)

$_GET[$dateq]为空/未定义,因此您的查询会在错误消息告诉您的位置被破坏。

AND `date` =   ORDER BY
             ^-- Your variable should bere here.

答案 2 :(得分:0)

在您的数据周围加上引号?

$data = mysql_query("
SELECT script 
FROM `tableoscripts` 
WHERE `event` = '$_GET[$eventq]' 
    AND `date` = '$_GET[$dateq]' 
ORDER BY 'scriptno' ASC")
 or die ('Error: '.mysql_error ());

答案 3 :(得分:0)

$_GET[$eventq]$_GET[$dateq]

可能应该是

{$_GET['eventq']}{$_GET['dateq']}

先逃避他们!

答案 4 :(得分:0)

我认为问题在于“date = $ _ Get [$ dateq]”您可能需要将其转换为日期格式。 在oracle中,您可以使用to_date()函数。不确定MySql中的等效函数。

答案 5 :(得分:0)

如果定义$ eventq和$ dateq而不是以下喊叫工作

$data = mysql_query("SELECT script FROM `tableoscripts` 
        WHERE `event` = '{$_GET[$eventq]}' AND `date` = '{$_GET[$dateq]'}
        ORDER BY 'scriptno' ASC") or die ('Error: '.mysql_error ());