请帮助我了解这个PHP / MySQL查询有什么问题。
这是我的频道表:
name url id key
BBC2 http://url.com/2 BBC2 2
BBC1 http://url.com/1 BBC1 1
这有效:
$getchans = "SELECT * FROM channels";
$channels = mysqli_query($db,$getchans);
foreach ($channels as $channel)
{
// do stuff
}
这不起作用:
$getchans = "SELECT * FROM channels ORDER BY key ASC";
$channels = mysqli_query($db,$getchans);
foreach ($channels as $channel)
{
// do stuff
}
并提供错误Warning: Invalid argument supplied for foreach()
任何人都可以告诉我为什么在订购MySQL查询/结果时它不起作用?
谢谢。
答案 0 :(得分:2)
esacepe Key Keyword,refer
$getchans="SELECT * FROM channels ORDER BY `key` ASC";
答案 1 :(得分:0)
key是mysql中的关键字,因此您需要在查询中使用``quotes。
$ getchans =“SELECT * FROM channels ORDER BY key
ASC”;
答案 2 :(得分:0)
您的查询失败,因为key
是SQL中的保留关键字。尝试将列key
的名称更改为其他名称。还有一个包含所有重新关键字的非常有用的列表。
如果您不喜欢此列的其他名称,可以尝试使用以下查询转义它:
SELECT * FROM channels ORDER BY `key` ASC
可以在https://dev.mysql.com/doc/refman/5.7/en/keywords.html
上找到包含保留关键字的列表古德勒克!