我做了一次搜索,找不到任何可以帮助我的东西.
我希望你能提供帮助.
我想执行一个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)
ON是MySQL保留的关键字.如果将其用作列或表标识符,则需要将其括在反引号中:
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)
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |