我在 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。
答案 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