@konellemhs

Как получить chat_id для поиска по базе?

Всем привет!
Создаю телеграмм бота, пока что функционал достаточно простой, но не суть)
Использую вебхук, получаем $result, вытаскиваем необходимые данные(chat_id, username и т.д.)
Функция add_user служит для записи пользователя в бд, если он написал боту первый раз.
Функция get_user соответсвенно для нахождения пользователя в бд.

function add_user($connect, $username, $chat_id, $name, $date, $old_id){
        $username   = trim($username);
        $chat_id    = trim($chat_id);
        $name       = trim($name);
        
      

        if($chat_id == $old_id){
            return false;
        }
        $t = "INSERT INTO users (username, user_chat_id, name, date_start) VALUES ('%s', '%s', '%s', '%s')";
        $query = sprintf($t, mysqli_real_escape_string($connect, $username),
                             mysqli_real_escape_string($connect, $chat_id),
                             mysqli_real_escape_string($connect, $name),
                             mysqli_real_escape_string($connect, $date));
        $result = mysqli_query($connect, $query);
        if(!$result){
            die(mysqli_error($connect));}
        return true;
}

function get_user($connect, $chat_id){
    
	$query = sprintf("SELECT * FROM users WHERE user_chat_id=%d", (int)$chat_id);
	$result = mysqli_query($connect, $query);
	if(!$result)
		die(mysqli_error($connect));
    $get_user = mysqli_fetch_assoc($result);
    DEBUG($get_user);
	return $get_user;

}


Столкнулся с проблемой, что запись в бд идет, строчки появляются, однако получить запись из бд не получается, в параметр $chat_id передается NULL.
Вызов поиска юзера:
$chat_id = $result["message"]["chat"]["id"];
$get_user = get_user($connect, $chat_id);


В чем может быть причина и что с этим делать?
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ответы на вопрос 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Удостоверьтесь, что в $result["message"]["chat"]["id"] вообще хоть что-то есть. А потом - что это число chat_id, конечно.
Ответ написан
@konellemhs Автор вопроса
Может прозвучать странно, но возможно был какой то баг(хз), сейчас все работает, ничего не менял)) При попытке сделать var_dump(), элементы массива не распечатываются, я так понимаю это происходит из-за того что работает через вебхук ( исправьте, если не прав), так как при "лонгпулле" распечатывает отлично. Из-за того что не распечатывает через var_dump(), я думал что там ничего не передается(( Мой косяк
Однако интересно услышать или почитать почему при "лонгпулле" распечатывается массив, а при "вебхуке" нет
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы