-1

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, object given in on line

Type
  • 189
  • 8

2 Answers2

1

Присоединяюсь к выше написавшим и дополняю от себя: У вас там, А - неверные ковычки в запросе. Б - Нет проверки на результат запроса.

 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;
}
uberchel
  • 644
  • 4
  • 6
  • Получилось, спасибо – Type Aug 13 '20 at 13:12
  • Вот только вышло один варнинг – Type Aug 13 '20 at 13:13
  • Warning: mysqli_fetch_assoc() expects exactly 1 parameter, 2 given in 40 – Type Aug 13 '20 at 13:13
  • function get_udata($username){ global $db; $res = array(); $username = mysqli_real_escape_string($db,$username); $result = mysqli_query($db,"SELECT * FROM users WHERE name=$username"); $arr = mysqli_fetch_assoc($db,$result); if(isset($arr['json'])){ $res = json_decode($arr['json'], true); } return $res; } – Type Aug 13 '20 at 13:13
  • вы читаете текст ошибки? написано - ожидает один параметр, даете 2. Что тут непонятного-то? – Максим Степанов Aug 13 '20 at 13:14
  • в 10 местах уже написали - не нужно пихать $db где попало - вы продолжаете. – Максим Степанов Aug 13 '20 at 13:15
  • Все почистил, 1 ошибка только Warning mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in 40

    function get_udata($username){ global $db; $res = array(); $username = mysqli_real_escape_string($db,$username); $result = mysqli_query($db,"SELECT * FROM users WHERE name={$username}"); $arr = mysqli_fetch_assoc($result); if(isset($arr['json'])){ $res = json_decode($arr['json'], true); } return $res; }

    – Type Aug 13 '20 at 13:29
  • кавычки тут есть или опечатка у вас? WHERE name='{$username}' – Максим Степанов Aug 13 '20 at 14:01
  • вы кавычки ` замените на обычные одинарные ' там, где значение, а не имя поля – Максим Степанов Aug 13 '20 at 14:02
-1

Ссылка на подключенную базу данных нужна только в запросе. В 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; }

Node_pro
  • 8,059
  • Warning mysqli_fetch_array() expects parameter 1 to be mysqli_result, object given in17 Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in 5
    Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in 6 Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in 7 Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in 8
    Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in 9 Не удалось зарегать
    – Type Aug 13 '20 at 12:55
  • function make_user($name, $lastname,$username,$chat_id,$time){ global $db; $name = mysqli_real_escape_string($name); 5строка $lastname = mysqli_real_escape_string($lastname); 6 строка $username = mysqli_real_escape_string($username); 7строка $chat_id = mysqli_real_escape_string($chat_id); 8строка $date = mysqli_real_escape_string($time); 9 строка $query = "INSERT INTO users (name,lastname,username,chat_id,time) VALUES ('{$name}','{$lastname}','{$username}','{$chat_id}','{$date}')"; mysqli_query($db,$query) or die("Не удалось зарегать"); } – Type Aug 13 '20 at 12:55
  • Поправил, пробуйте – Node_pro Aug 13 '20 at 12:57
  • Соединение с MySQL установлено! Информация о сервере: localhost via TCP/IP

    Warning: mysqli_fetch_row() expects exactly 1 parameter, 2 given in 16

    Warning: Use of undefined constant result - assumed 'result' (this will throw an Error in a future version of PHP) 17

    Warning: Use of undefined constant result - assumed 'result' (this will throw an Error in a future version of PHP) in on line


    Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given 6 Не удалось зарегать
    – Type Aug 13 '20 at 12:59
  • Исправил, пробуйте – Node_pro Aug 13 '20 at 13:03
  • не получится) mysqli_fetch_row нужен 1 параметр, у вас 2. – Максим Степанов Aug 13 '20 at 13:04
  • @Максим Степанов, спасибо, забыл убрать с оригинала =) – Node_pro Aug 13 '20 at 14:24