0

当我在 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);
}
4

2 回答 2

5

当您使用时,即使计数为零,COUNT(*)您也总是会返回一行

你要么:

  1. 想要删除count(*)然后使用mysqli_num_rows() or
  2. 得到结果count(*)

.

$row = mysqli_fetch_assoc($query);
echo $row['COUNT(`user_id`)'];
于 2013-08-05T18:40:52.137 回答
1

Count 检索单行。尝试在 phpmyadmin 中测试 SQL 并查看结果。查询返回的这一行包含您要查找的数字。

我建议也做类似的事情

SELECT COUNT('user_id') AS user_matches FROM ....

这样您就可以通过“user_matches”键访问。

*我建议将 SELECT * FROM ... * 与 num_rows 一起使用,这与 count() 相比会非常慢。

于 2013-08-05T18:45:22.157 回答