我正在运行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;
}
但我希望它是真的。我是否滥用了获取功能?
答案 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]
输出。