jayjay jayjay - 1 year ago 78
PHP Question

mysqli_num_rows returns 1 no matter what

When I do a SQL search in phpMyAdmin (substituting the variable for the actual value) it returns the correct row number but when using PHP to return this value it always returns 1 no matter what. Thanks in advance.

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;

Answer Source

When you use COUNT(*) you always get one row returned even if the count is zero.

You either:

  1. Want to remove the count(*) and then use mysqli_num_rows() or
  2. Get the result of count(*)


$row = mysqli_fetch_assoc($query);
echo $row['COUNT(`user_id`)'];