可能重复:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
我已经完成了搜索,找不到任何可以帮助我的东西。
我希望你能提供帮助。
我想执行一个MySQL查询,在表中搜索符合两个条件的条目(type = green AND on = yes)
我看到:警告:mysql_fetch_array():提供的参数不是第36行/link/to/my/file.php中有效的MySQL结果资源
以下是代码摘录(第36行):
`$green = "SELECT * FROM homepage_vars WHERE type = 'green' AND on = 'yes'";
$green = mysql_query($green);
$green = mysql_fetch_array($green);`
答案 0 :(得分:7)
ON
是MySQL reserved keyword。如果将它用作列或表标识符,则需要将其括在反引号中:
SELECT * FROM homepage_vars WHERE type = 'green' AND `on` = 'yes'
一旦更正了查询语法,您将遇到另一个问题。您已多次覆盖变量$green
。最初,它保存了您的查询SQL,但随后用于查询结果资源。没关系,但是你会用mysql_fetch_array()
提取的行覆盖它,它的内容将是一个数组或FALSE
。由于$green
不再是结果资源,因此后续尝试获取行将失败。
在尝试获取行之前,始终测试查询成功或失败。调用mysql_error()
以查看MySQL服务器报告的错误,该错误指向
$green = "SELECT * FROM homepage_vars WHERE type = 'green' AND on = 'yes'";
$query = mysql_query($green);
if ($query) {
// Don't overwrite your query resource!
// Use a new variable!
$row = mysql_fetch_array($query);
}
else {
// Failure!
echo mysql_error();
}