我不知道为什么这不起作用。我从之前的项目中获取了良好的代码。我只想选择特定的列。这就是我想要的......
$result = mysql_query("SELECT when, where, name FROM tablename ORDER BY count DESC LIMIT 0, 20");
//I dont really know how to debug php well, so this is all I have to go by to know if its not working.
if (!$result)
{
echo "<p>Page load has failed please try again</p>";
}
如果我选择所有这样的,它可以正常工作:
$result = mysql_query("SELECT * FROM tablename ORDER BY count DESC LIMIT 0, 20");
如果我正在进行插入,那么也不起作用......
$query = "INSERT INTO tablename (when, where, name) VALUES ('$when' , '$where' , '$name');";
mysql_query($query);
我确信拼写是正确的我已经好几次看过了,即使我把它放了
echo $row["name"]; and the others ect while using the select all * they appear...
当我选择单个列时,它似乎正在发生。
我有其他表,其他网站使用相同的确切代码,并且工作正常。
我该如何解决这个问题?或者至少我如何调试php以获得更好的错误消息?
编辑: 我确信进入的值很好,它只是简单的helloworld字符串 我已经尝试将count包含在需要进行排序的select选项中,但这并没有使它工作。
答案 0 :(得分:4)
单词where
是保留字(WHERE
,SELECT
和UPDATE
查询的DELETE
子句。 when
也是如此。 count
是一个内置函数名称,但可以用作标识符,但不应该。
如果将它用作标识符,则必须始终将其括在查询中的“反引号”中。我建议不要使用部分查询语言作为列名。
答案 1 :(得分:0)
WHERE,WHEN和COUNT是MySQL词(http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html)。使用这样的反引号。
$result = mysql_query("SELECT `where`, `when`, name FROM tablename ORDER BY `count` DESC LIMIT 0, 20");
答案 2 :(得分:-1)
where
是一个保留的sql词,使用tablename.where
选择正确的列。