我有一个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方法指向这一页,详细信息在提交后显示在地址栏中
你需要引用你的值:
...WHERE `event` = '$_GET[$eventq]' AND `date` = '$_GET[$dateq]'...
请注意,在查询中使用未经过滤的用户数据是危险的。有关sql注入攻击和缓解信息,请参阅http://bobby-tables.com/。
$_GET[$dateq]
为空/未定义,因此您的查询在错误消息告诉您的位置被打破。
AND `date` = ORDER BY
^-- Your variable should bere here.
给你的数据加上引号?
$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[$eventq]
和$_GET[$dateq]
应该是
{$_GET['eventq']}
和{$_GET['dateq']}
.
先转义它们!
我认为问题在于"date=$_Get[$dateq]",您可能必须将其转换为日期格式。在oracle中,您可以使用to_date()函数。不确定MySql中的等效函数
如果定义了$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 ());