Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP实现mySQL中的两个WHERE条件_Php_Mysql_Where - Fatal编程技术网

用PHP实现mySQL中的两个WHERE条件

用PHP实现mySQL中的两个WHERE条件,php,mysql,where,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 guestbo

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

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");
我想当我使用这个词的时候,我总是会犯错误,而且我不知道如何做出两个WHERE条件

如果我缺少解决此问题所需的描述或代码,请务必询问,以便我可以对其进行编辑


谢谢!:)

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

$result = mysql_query(... your query here ...) or die(mysql_error());
                                              ^^^^^^^^^^^^^^^^^^^^^^
只要让mysql告诉你是否出了问题。您的错误消息意味着查询由于某种原因失败,您盲目地认为它成功了,并试图使用mysql_查询在后续操作中返回的布尔值FALSE。永远不要假设数据库操作已成功


编辑:给出错误消息是因为
ignore
是保留字。用反勾号将其转义:

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

强制mysql将其视为字段名。

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

$result = mysql_query(... your query here ...) or die(mysql_error());
                                              ^^^^^^^^^^^^^^^^^^^^^^
只要让mysql告诉你是否出了问题。您的错误消息意味着查询由于某种原因失败,您盲目地认为它成功了,并试图使用mysql_查询在后续操作中返回的布尔值FALSE。永远不要假设数据库操作已成功


编辑:给出错误消息是因为
ignore
是保留字。用反勾号将其转义:

... AND `ignore`=0 ORDER BY ...
        ^      ^
强制mysql将其视为字段名。

试试这个

$query = mysql_query("SELECT * FROM guestbook WHERE permission= 0 AND ignore=0 ORDER BY gbid DESC");
如果permission和ignore是INT类型,则不需要引号…

试试这个

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

如果permission和ignore是INT类型,则不需要引号…

ignore是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");

或者更改冒号名称

忽略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");

或者更改冒号名称

语法看起来不错。检查mysql\u error()。另外,如果permission和ignore是数字字段,则应使用`=0`而不是`=0`。请在phpMyAdmin中尝试查询。也许你把字段名错了,或者什么的。它还将向您显示有用的错误消息。@bsdnoobz您不需要phpmyadmin来查看错误消息。如果他还没有安装一个查询,那么调试这个查询需要花费大量的精力;检查与您的MySQL服务器版本对应的手册,以了解在“ignore=0 ORDER BY gbid DESC”附近使用的正确语法。我已经检查了我的表和行,所有的表和行都是正确的。试着将SQL剥离到最基本的部分,然后一次添加一个条件,这样您就可以看到哪个条件破坏了它。给出了一些答案,我将删除ignore=first。语法看起来很好。检查mysql\u error()。另外,如果permission和ignore是数字字段,则应使用`=0`而不是`=0`。请在phpMyAdmin中尝试查询。也许你把字段名错了,或者什么的。它还将向您显示有用的错误消息。@bsdnoobz您不需要phpmyadmin来查看错误消息。如果他还没有安装一个查询,那么调试这个查询需要花费大量的精力;检查与您的MySQL服务器版本对应的手册,以了解在“ignore=0 ORDER BY gbid DESC”附近使用的正确语法。我已经检查了我的表和行,所有的表和行都是正确的。试着将SQL剥离到最基本的部分,然后一次添加一个条件,这样您就可以看到哪个条件破坏了它。给出一些答案,我会删除ignore=first。即使字段是整数类型,如果用户发布的语句会出错,那么这个也会出错。MySQL将根据需要自动转换,因此这是一个无意义的更改。即使字段是整数类型,如果用户发布的语句会出错,MySQL将根据需要自动转换,所以这是一个无意义的更改;检查与您的MySQL服务器版本对应的手册,以了解在“ignore=0 ORDER BY gbid DESC”附近使用的正确语法。我已经检查了我的表和行,它们都是正确的。
ignore
是mysql中的一个选项。在我用mysql\u error()检查它之后,它会说,error:您的SQL语法有一个错误;检查与您的MySQL服务器版本对应的手册,以了解在“ignore=0 ORDER BY gbid DESC”附近使用的正确语法。我已经检查了我的表和行,它们都是正确的。
ignore
是mysql中的一个选项。你必须用回击来逃避它。