当我在phpMyAdmin中进行SQL搜索(用变量替换实际值)时,它会返回正确的行号,但是当使用PHP返回此值时,无论如何都会返回1。提前谢谢。
function user_exists($username) {
$link = mysqli_connect('localhost','root','','test');
$username = sanitize($username);
$query = mysqli_query($link, "SELECT COUNT(`user_id`) FROM `new_base` WHERE `username`='$username'");
$row_cnt = mysqli_num_rows($query);
echo $row_cnt;
mysqli_free_result($query);
mysqli_close($link);
}
答案 0 :(得分:5)
当您使用COUNT(*)
时,即使计数为零,总是会返回一行。
你要么:
count(*)
,然后使用mysqli_num_rows()
或count(*)
$row = mysqli_fetch_assoc($query);
echo $row['COUNT(`user_id`)'];
答案 1 :(得分:1)
计数会重新单行。尝试在phpmyadmin中测试SQL并查看结果。 查询返回的这一行包含您要查找的数字。
我建议也做类似
的事情SELECT COUNT('user_id') AS user_matches FROM ....
这样您就可以通过' user_matches'键。
*我会不建议使用带有num_rows的SELECT * FROM ... *,与count()相比,这会非常慢。