两个WHERE语句

时间:2012-05-26 14:52:08

标签: php mysql

  

可能重复:
  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);`

1 个答案:

答案 0 :(得分:7)

ONMySQL 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();
}