如果数据库中存在值,则进行分析

时间:2016-01-17 08:47:57

标签: php mysql mysqli web

我在 mysqli 中有一个数据库,如下所示:

|--------------|-------Users-----------|---------------|
|id------------|------username---------|----------email|
|1-------------|--------test-----------|-test@gmail.com|

PHP:

class User{
    public static function exists($dbType="",$type=""){
        $result = "SELECT * FROM Users  WHERE ".$dbType."='{$type}'";
        return (mysqli_fetch_array($result) == 1) ? 'NO' : 'YES';
    }
}

我这样检查:

echo "First: " . User::exists("username", "testUsername") ." | ". User::exists("email", "test@gmail.com") . "</br>";

但问题是它只返回“NO”,即使数据库中不存在testUsername。

2 个答案:

答案 0 :(得分:0)

mysqli_fetch_array($ result)的结果是一个数组。如果您想知道数据库中是否有结果,您应该尝试计算数组的大小。

试试这个:

class User{
    public static function exists($dbType="",$type=""){
         $query= "SELECT * FROM Users  WHERE ".$dbType."='{$type}'";
         $result = mysqli_query($query);
         return (sizeof(mysqli_fetch_array($result)) == 1) ? 'NO' : 'YES';
    }
}

答案 1 :(得分:0)

public static function exists($dbType="",$type=""){ 
    $query= "SELECT * FROM Users  WHERE ".$dbType."='{$type}'";
    $result = mysqli_query($query);

    return (mysqli_num_rows($result) == 0) ? 'NO' : 'YES';
}

感谢Rajdeep Paul