Выходит ошибка mysqli_fetch_array уже не знаю как ее решить
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, object given in on line 17
Вот код :
function is_user_set($username){
global $db;
$username = mysqli_real_escape_string($db,$username);
$result = mysqli_query($db,"SELECT * FROM `users` WHERE name=`$username` LIMIT 1");
if(mysqli_fetch_array($db,$result) !==false) return true;
return false;
}
Ответы (2 шт):
Автор решения: Node_pro
→ Ссылка
Ссылка на подключенную базу данных нужна только в запросе. В mysqli_fetch_array - отвечает за извлечение данных. Подробнее тут mysqli_fetch_array.
function is_user_set($username){
global $db;
$username = mysqli_real_escape_string($db,$username);
$result = mysqli_query($db,"SELECT * FROM `users` WHERE name=`$username` LIMIT 1");
return $result && (bool)mysqli_fetch_array($result)
}
Кстати, если Вам нужно узнать, есть ли такой пользователь или нет, достаточно использовать COUNT(*) и mysql_fetch_row.
function is_user_set($username){
global $db;
$username = mysqli_real_escape_string($db,$username);
$result = mysqli_query($db,"SELECT COUNT(*) FROM `users` WHERE name=`$username` LIMIT 1");
if($result === FALSE){
// Error msg;
return null;
}
$result = mysqli_fetch_row($result);
return $result[0]>0;
}
Автор решения: uberchel
→ Ссылка
Присоединяюсь к выше написавшим и дополняю от себя: У вас там, А - неверные ковычки в запросе. Б - Нет проверки на результат запроса.
function is_user_set($username){
global $db;
if (isset($username)) {
$username = mysqli_real_escape_string($db,$username);
$result = mysqli_query($db,"SELECT COUNT(id) AS id FROM `users` WHERE name='{$username}' LIMIT 1");
return boolval(mysqli_num_rows($result) != 0);
}
return false;
}