mysqli_num_rows возвращает 1 независимо от того, что

Когда я выполняю поиск SQL в phpMyAdmin (заменяя переменную на фактическое значение), он возвращает правильный номер строки, но при использовании 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); } 

Когда вы используете COUNT(*) вы всегда получаете одну строку, возвращенную, даже если счетчик равен нулю .

Вы либо:

  1. Хотите удалить count(*) а затем использовать mysqli_num_rows() или
  2. Получите результат count(*)

,

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

Count возвращает одну строку . Попробуйте протестировать SQL в phpmyadmin и увидеть результат. Эта единственная строка, возвращаемая запросом, имеет номер, который вы ищете.

Я предлагаю также сделать что-то вроде

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

Таким образом, вы можете получить доступ через ключ «user_matches».

* Я бы не рекомендовал использовать SELECT * FROM … * с num_rows, это было бы очень медленно по сравнению с count ().