用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中的一个选项。你必须用回击来逃避它。