1

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

我已经进行了搜索,但找不到任何可以特别帮助我的东西。

我希望你能帮忙。

我想执行一个 MySQL 查询,该查询在表中搜索满足两个条件的条目(类型 = 绿色 AND on = 是)

我收到:警告: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);`
4

1 回答 1

7

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

SELECT * FROM homepage_vars WHERE type = 'green' AND `on` = 'yes'

更正查询语法后,您将遇到另一个问题。您已多次覆盖该变量$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();
}
于 2012-05-26T14:56:45.420 回答