Когда я выполняю поиск 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(*)
вы всегда получаете одну строку, возвращенную, даже если счетчик равен нулю .
Вы либо:
count(*)
а затем использовать mysqli_num_rows()
или 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 ().