首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检查mysql_query是否返回任何结果的最好方法?

检查mysql_query是否返回任何结果的最好方法?
EN

Stack Overflow用户
提问于 2010-11-26 23:37:42
回答 10查看 273.7K关注 0票数 73

我正在寻找最好的方法来检查并查看查询中是否返回了任何结果。我觉得我写了很多这部分代码,有时会出错,有时不会。

例如,在将新用户名插入数据库之前,我运行此查询来检查用户名是否存在。

代码语言:javascript
复制
$result = mysql_query("SELECT * FROM ...");

然后我想检查并查看是否返回了任何结果。下面是我的一种方法:

代码语言:javascript
复制
if (!$result) { PERFORM ACTION }

如果第一种方法不起作用,那么有时这会起作用:

代码语言:javascript
复制
if (mysql_num_rows($result)==0) { PERFORM ACTION }

后来有一天我甚至发现我可以这样做:

代码语言:javascript
复制
list($total) = mysql_fetch_row($result);
if ($total==0) { PERFORM ACTION }

做这件事最好的方法是什么?

EN

回答 10

Stack Overflow用户

发布于 2010-11-26 23:39:57

一种方法是检查mysql_num_rows返回的内容。一个最小的完整示例如下:

代码语言:javascript
复制
if ($result = mysql_query($sql) && mysql_num_rows($result) > 0) {
    // there are results in $result
} else {
    // no results
}

但建议您检查mysql_query的返回值,并在返回值为false (这可能是由错误引起的)的情况下正确处理它;可能还需要调用mysql_error并将错误记录在某个地方。

票数 15
EN

Stack Overflow用户

发布于 2013-06-07 06:14:22

每当我们进行查询以获取某些数据时,它都会以对象的形式返回。然后,我们大多数人都会将其转换为数组,以便轻松地遍历各行。在php中," empty ()“函数用于检查数组是否为空,即该数组中是否没有数据。因此我们可以检查查询返回的数组表示是否为空,如下所示

代码语言:javascript
复制
if(!empty($result)){
           //DO STUFF
}
票数 7
EN

Stack Overflow用户

发布于 2013-07-26 22:13:15

比在处理前测试结果变量的类型更符合逻辑的是什么?它是'boolean‘或'resource’类型。当您在mysqli_num_rows中使用参数的布尔值时,将会生成警告,因为该函数需要一个资源。

代码语言:javascript
复制
$result = mysqli_query($dbs, $sql);

if(gettype($result)=='boolean'){ // test for boolean
    if($result){  // returned TRUE, e.g. in case of a DELETE sql  
        echo "SQL succeeded"; 
    } else { // returned FALSE
        echo "Error: " . mysqli_error($dbs);
    } 
} else { // must be a resource
    if(mysqli_num_rows($result)){

       // process the data    

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

https://stackoverflow.com/questions/4286586

复制
相关文章

相似问题

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