首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查mysql_query是否返回任何内容

如何检查mysql_query是否返回任何内容
EN

Stack Overflow用户
提问于 2011-09-27 17:52:10
回答 3查看 5.9K关注 0票数 4

可能重复: 数组()期望参数1是资源,在select中给出布尔值

因此,我试图检查以下查询是否返回任何结果

代码语言:javascript
复制
  $numUsersSameRatingQuery="SELECT * `user ratings` WHERE  category='$category' AND categoryId='$categoryId' AND  `userAromaRating`>0 ";

  $result=mysql_query($numUsersSameRatingQuery);

   $numResults=mysql_num_rows($result);

  if($numResults==0)
  {
   // do the INSERT INTO
  }
  else
  {
   //do the UPDATE SET
  }

但是,上面的内容返回以下错误,而且每次都执行if($numResults)。换句话说,我永远无法让else块运行。

这是错误

代码语言:javascript
复制
 Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\boozeDb\profileThis.php on line 141

帮助是值得感激的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-27 17:56:19

您可以使用is_resource来确保它是一个资源。您也可以使用if语句来确保没有返回FALSE

若要显示错误,请使用mysql_error

示例:

代码语言:javascript
复制
<?php

// From http://ca2.php.net/manual/en/function.mysql-query.php

$result = mysql_query('SELECT * WHERE 1=1');
if (!$result) {
    trigger_error('Invalid query: ' . mysql_error());
}
票数 8
EN

Stack Overflow用户

发布于 2011-09-27 17:56:28

mysql_query()要么返回语句句柄(查询成功),要么返回布尔FALSE (查询失败)。您的代码不检查错误条件并盲目地假定成功。修改代码如下所示:

代码语言:javascript
复制
$result=mysql_query($numUsersSameRatingQuery) or trigger_error(mysql_error());
                                             ^^^^^^^^^^^^^^^^^^^^^^--- add this

考虑到您的示例查询,您缺少了FROM关键字,可能应该是:

代码语言:javascript
复制
SELECT * FROM `user ratings`
        ^^^^^^

我希望强烈敦促您不要使用包含空格的字段名。他们只不过是麻烦。

票数 2
EN

Stack Overflow用户

发布于 2011-09-27 19:40:48

正如其他人所评论的那样,if语句或"or die()“可能有助于避免再次生成该错误,而错误可能来自查询中缺少的" from”。

我只是觉得有必要对这样一个事实进行评论:您现在正在进行两个查询,以防止表中的一些或所有列被重复: SELECT和INSERT。这可以在一个查询中完成,并将加快您的代码:

插入.(您想插入的内容)..在重复键更新..(如果它已经存在的话应该更新什么)..

想了解更多信息,请看关于它的手册页面。

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

https://stackoverflow.com/questions/7573519

复制
相关文章

相似问题

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