mysqli_fetch_row和SELECT COUNT

时间:2017-08-06 23:51:46

标签: php mysql mysqli

我正在运行PHP 7.0并连接到一个mysql数据库,其记录与下面的查询匹配:

$query = mysqli_query($conn, "SELECT COUNT(`user_id`) FROM `users` WHERE `username` = 'baz'");
$row = mysqli_fetch_row($query);
print_r($row[0]);

打印输出1,正如预期的那样,只有一条记录与该用户名匹配。

但是,以下函数返回false

function user_exists(){
$exists_query = mysqli_query($conn, "SELECT COUNT(`user_id`) FROM `users` WHERE `username` = 'baz'");
$row = mysqli_fetch_row($exists_query);
return ($row[0] == 1) ? True : False;
}

但我希望它是真的。我是否滥用了获取功能?

2 个答案:

答案 0 :(得分:-1)

您的第一个print_r语句究竟输出了什么? 它应该打印一个数组,而不是整数。 您的$row是一个数组数组。 因此$row[0]不会是'1',而是array('1')

答案 1 :(得分:-1)

我认为这是因为$conn无法访问。试试这个

function user_exists(){
    global $conn;
    $exists_query = mysqli_query($conn, "SELECT COUNT(`user_id`) FROM `users` WHERE `username` = 'baz'");
    $row = mysqli_fetch_row($exists_query);
    return ($row[0] == 1) ? True : False;
}

编辑: 正如@trs所提到的,你应该考虑你的$row[0]输出。