mysql_result () ожидает, что параметр 1 будет ресурсом, данный объект

В качестве части системы входа мне нужно проверить, существует ли имя пользователя в базе данных, поэтому я создал запрос, который проверяет, существует ли уже введенное пользователем имя пользователя.

С mysql_result я проверяю, больше ли id как null. Если да: существует пользователь, а если нет, пользователь не существует. Но здесь это идет не так, и wampserver дает мне эту ошибку:

Предупреждение: mysql_result () ожидает, что параметр 1 будет ресурсом, объект указан в users.php в строке 6

 function user_exists($username){ global $user_db; $username = sanitize($username); $query = mysqli_query($user_db , "SELECT COUNT(`id`) FROM `users` WHERE `username` = '$username'"); $result = mysql_result($query, 0); //line 6 if(!$result){ return false; }else{ return true; } } 

и это код, который вызывает эту функцию:

 if(user_exists('name') === true){ echo 'exists'; } $user_db = mysqli_connect("localhost","root","","databaseName"); 

Что я попробовал:
если я это сделаю: mysqli_result($result,0,"id"); Я получаю эту ошибку: Call to undefined function mysqli_result() . получил это предложение от этого вопроса

Все ответы на такие вопросы, как моя, говорят, что вы не должны использовать mysql и mysqli но только один из них, но когда я использую mysli я получаю ошибку, как я сказал один абзац выше этого.

Так может кто-нибудь сказать мне, как это исправить.

Вы немного смешиваете mysql и mysqli. В mysqli-драйвере нет функции mysqli_result (). Однако я нашел решение вашей проблемы. Из комментария в документации PHP:

Преобразуя старый проект с использованием расширения mysql в расширение mysqli, я обнаружил, что наиболее неприятным изменением является отсутствие соответствующей функции mysql_result в mysqli. В то время как mysql_result является, как правило, ужасной функцией, полезно было получить одно значение результата результата из набора результатов (например, при поиске идентификатора пользователя).

Ниже приведен пример поведения mysql_result, хотя вы можете назвать его чем-то другим, кроме mysqli_result, чтобы не думать, что это фактическая встроенная функция.

Код:

 <?php function mysqli_result($res, $row, $field=0) { $res->data_seek($row); $datarow = $res->fetch_array(); return $datarow[$field]; } ?> 

Источник: http://php.net/manual/en/class.mysqli-result.php