使用PHP在mySQL中有两个WHERE条件

时间:2012-05-26 04:02:35

标签: php mysql where

我的网站上有一个错误

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时我总是会出错,而且我不知道如何制作TWO WHERE条件。

如果我缺少解决此问题所需的说明或代码,请询问我是否可以进行编辑。

谢谢! :)

3 个答案:

答案 0 :(得分:3)

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

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

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


编辑:给出您的错误消息,因为ignore是保留字。用反引号逃脱它:

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

强制mysql将其视为字段名。

答案 1 :(得分: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");

或更改coloum名称

答案 2 :(得分:0)

试试这个

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

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

相关问题