daniyar_bogdanov
@daniyar_bogdanov

Почему Telegram Bot выдаёт число 2147483647 вместо user_id?

Когда я получаю user_id с кнопки, то вместо user_id выдаётся число 2147483647. Ошибку я обнаружил, когда делал записи в БД. Что интересно, ошибка возникает, только у некоторых пользователей моего бота. К примеру у меня такой ошибки нет. Что ещё интереснее, это число выскакиевает у всех. кто столкнулся с этой ошибкой.
Я проверил наличие пользователей с таким id, но никого в бд нет и это число в моём коде нигде не используется. Поискав в интернете, я нашёл один вопрос, связанный с этим числом, но внятного ответа там не было.

Прошу помочь с данной проблемой, иначе я уже 3 часа ломаю голову.

Мой код, как я получаю user_id:
$output = json_decode(file_get_contents('php://input'), TRUE);
$user_id = $output['callback_query']['from']['id'];
  • Вопрос задан
  • 718 просмотров
Пригласить эксперта
Ответы на вопрос 1
@staspostnikov
Проблема в настройках БД, 2147483647 - это максимальное возможное число типа данных int(11), куда вы пытаетесь записать chat id. Суть в том, что при записи в БД подается корректный chat id, но для БД с типом данных int это число слишком большое, поэтому он ставит известное ему максимальное число 2147483647. Поменяйте тип данных на bigint где максимальное число от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 или varchar и все должно работать корректно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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