PHP PDO检查数据库查询是否返回NULL值

时间:2015-02-26 15:28:30

标签: php mysql pdo

我有一个PHP函数,可以查询数据库。我想如果查询返回NULL值该函数返回false。 empty($result) does not work.

    $query = $this->dbh->prepare($sql);
    $query->bindParam(':phone', $phone);
    $query->bindParam(':name', $name);
    $result = $query->execute();
    if ($result) {
        if ($isVitamin) {
            $result_table = $query->fetch(PDO::FETCH_ASSOC);
            $result_table['isVitamin'] = 1;
            if (empty($result)) {
                return false;
            } else {
                return $result_table;
            }
        } else {
            $result_table = $query->fetch(PDO::FETCH_ASSOC);
            if (empty($result)) {
                return false;
            } else {
            //  echo "inside else";
            //  echo $result_table['name'];
                $result_table['isVitamin'] = 0;
                return $result_table;
            }
        }
    }  else {
        return false;
    }

查询返回空值。函数不返回FALSE

enter image description here

2 个答案:

答案 0 :(得分:0)

如果我没弄错,你使用的是“$ result”,你应该使用“$ result_table” - 查看下面的评论:

$query = $this->dbh->prepare($sql);
$query->bindParam(':phone', $phone);
$query->bindParam(':name', $name);
$result = $query->execute();
if ($result) {
    if ($isVitamin) {
        $result_table = $query->fetch(PDO::FETCH_ASSOC);
        $result_table['isVitamin'] = 1;
        if (empty($result)) {
            return false;
        } else {
            return $result_table;
        }
    } else {
        $result_table = $query->fetch(PDO::FETCH_ASSOC);
        if (empty($result)) { //<-- this should be $result_table ?
            return false;
        } else {
        //  echo "inside else";
        //  echo $result_table['name'];
            $result_table['isVitamin'] = 0;
            return $result_table;
        }
    }
}  else {
    return false;
}

答案 1 :(得分:0)

而不是     如果(空($结果)) 使用     如果(!$结果)