mysqli_num_rows retorna 1, não importa o que

Quando eu faço uma pesquisa SQL em phpMyAdmin (substituindo a variável pelo valor real) retorna o número correto da linha, mas ao usar o PHP para retornar esse valor, ele sempre retorna 1, não importa o que. Desde já, obrigado.

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); } 

Quando você usa COUNT(*) você sempre obtém uma linha retornada mesmo se a contagem for zero .

Você também:

  1. Deseja remover a count(*) e, em seguida, use mysqli_num_rows() ou
  2. Obter o resultado da count(*)

.

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

O conde retrives uma única linha . Tente testar o SQL em phpmyadmin e veja o resultado. Esta única linha retornada pela consulta possui o número que você está procurando.

Sugiro também fazer algo como

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

Desta forma, você pode acessar a tecla ‘user_matches’.

* Eu não recomendaria usar SELECT * FROM … * com os num_rows, isso seria muito lento em comparação com uma contagem ().