0

我的网站上有一个错误,上面写着

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ../../../guestbook.php on line 117

当我检查我的第 117 行时

while ($row=mysql_fetch_array($query)) {

而且我认为我的查询是错误的...

$query = mysql_query("SELECT * FROM guestbook WHERE permission='0' AND ignore='0' ORDER BY gbid DESC");

我想我在使用 AND 一词时总是会出错,而且我不知道如何创建两个 WHERE 条件。

如果我缺少解决此问题所需的描述或代码,请询问以便我可以编辑它。

谢谢!:)

4

3 回答 3

3

检查查询是否错误的简单方法:

$result = mysql_query(... your query here ...) or die(mysql_error());
                                              ^^^^^^^^^^^^^^^^^^^^^^

如果有问题,只需让 mysql 告诉你。您的错误消息意味着查询由于某种原因失败,您盲目地假设它成功,并尝试使用 mysql_query 在后续操作中返回的布尔 FALSE 值。永远不要假设数据库操作已经成功。


编辑:鉴于您的错误消息,这是因为ignore是保留字。用反引号转义它:

... AND `ignore`=0 ORDER BY ...
        ^      ^

强制 mysql 将其视为字段名。

于 2012-05-26T04:05:23.867 回答
1

忽略是mysql中的保留字。(http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html)

你可以简单地尝试

$query = mysql_query("SELECT * FROM guestbook WHERE `permission`= 0 AND `ignore`=0 ORDER BY gbid DESC");

或更改列名

于 2012-05-26T04:39:54.560 回答
0

尝试这个

$query = mysql_query("SELECT * FROM guestbook WHERE permission= 0 AND ignore=0 ORDER BY gbid DESC");

如果权限和忽略是 TYPE INT,则不需要引号...

于 2012-05-26T04:09:42.770 回答