两个WHERE语句

Log*_*gan 1 php mysql

可能重复:
警告:mysql_fetch_array():提供的参数不是有效的MySQL结果

我做了一次搜索,找不到任何可以帮助我的东西.

我希望你能提供帮助.

我想执行一个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);`
Run Code Online (Sandbox Code Playgroud)

Mic*_*ski 7

ONMySQL保留的关键字.如果将其用作列或表标识符,则需要将其括在反引号中:

SELECT * FROM homepage_vars WHERE type = 'green' AND `on` = 'yes'
Run Code Online (Sandbox Code Playgroud)

一旦更正了查询语法,您将遇到另一个问题.您已多次覆盖变量$green.最初,它保存了您的查询SQL,但随后用于查询结果资源.那很好,但是你会用提取的行覆盖它,mysql_fetch_array()它的内容将是一个数组或FALSE.后续尝试获取行将失败,因为$green它不再是结果资源.

在尝试获取行之前,始终测试查询成功或失败.调用mysql_error()以查看MySQL服务器报告的错误,该错误指向"on"或类似内容附近的无效语法.

$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();
}
Run Code Online (Sandbox Code Playgroud)