PHP/SQL Where, And, Order By -- 适用于一个语句,但在另一个类似的查询上出现错误


PHP/SQL Where, And, Order By -- works on one statement but getting an error on another similar query

我正在尝试添加一个部分,显示个人是否赢得了任何年终奖项。我有任何冠军和预备队冠军表现得很好。但是,当我去添加"年终奖"部分时,我不断收到此错误:

您的 SQL 语法有误;请查看手册 对应于您的MySQL服务器版本,以便使用正确的语法 在第 1 行的"显示 = 按年份排序"附近 yearend

我已经玩过撇号,使用 LIKE 语句,删除 ORDER BY,以及任何我能想到的东西,但我不知所措。我似乎无法弄清楚工作语句中发生了什么变化会导致错误。

这工作得很好

<?php
$id = $_GET['id']; //Gets the ID from the URL
$result = mysql_query("SELECT * FROM competition 
WHERE id = $id 
AND place = 'CH' 
ORDER BY year DESC") or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo $row['class'];
echo "<small>(";
echo $row['show'];
echo ")</small><br>";
}
?>


这不起作用我在下面所做的唯一更改是地方 = 现在显示 =

<?php
$id = $_GET['id']; //Gets the ID from the URL
$result = mysql_query("SELECT * FROM competition 
WHERE id = $id 
AND show = 'yearend' 
ORDER BY year DESC") or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo $row['class'];
echo "<br>"; 
} 
?>

SHOW是MySQL中的一个保留字。您必须将其放入反引号或更好的情况下,不要使用保留字作为列名,而只需重命名该列。从长远来看,它将节省您的时间和头发。

改变

AND show = 'yearend'

AND `show` = 'yearend'
    ^    ^