首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中对一个空表执行sql查询会返回什么?

问在php中对一个空表执行sql查询会返回什么?
EN

Stack Overflow用户
提问于 2011-06-13 10:20:31
回答 2查看 635关注 0票数 1

我有以下PHP脚本:

代码语言:javascript
复制
 <?php
       $all_threads=mysql_query("SELECT * FROM forum_threads WHERE category=$_GET[id]");

       if($all_threads){ ?>
            //Do something.
     <?php
       }
       else { ?>
            //Do something else
      <?php
       } ?>

表forum_threads为空,因此根据http://php.net/manual/en/function.mysql-query.php上的文档,查询应该返回'false‘,并且应该执行'else’块。然而,奇怪的是,if-块正在被执行。怎么会这样?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-13 10:22:49

它将在0行上返回一个MySQL资源,而不是FALSE。它将在查询错误时返回FALSE。

您可以改为检查mysql_num_rows()。如果没有返回任何行,则为0。

你也有一个SQL注入漏洞。用mysql_real_escape_string()避开GET参数。

如果可以,只需丢弃mysql_*(),使用PDO。

票数 5
EN

Stack Overflow用户

发布于 2011-06-13 10:23:26

它不会返回false,因为您的SQL语句中没有错误,它只是返回一个空结果集,因为没有匹配的记录。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6326122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档