@ambal245

Как записать в MySQL большое число при создании новой таблицы?

Использую библиотеку RedBeanPHP. При создании новой таблицы и записи в неё данных, значения полей устанавливаются стандартными на примере int(11).
Использую такой php код для записи
$username = 'tester';
$update_id = '-4265498067642357898';
$text = 'Здесь текст длиной от 20 до 500 символов';
$date = '1607284134';
$post = R::dispense($username);
               if(!empty($update_id)) $post->update_id = $update_id;
               if(!empty($text)) $post->text = $text;
               if(!empty($date)) $post->create_date = $date;
               R::store($post);

В БД записываются данные с такими настройками полей
update_id - int(11) UNSIGNED
text - varchar(191) utf8mb4_unicode_ci
create_date - int(11) UNSIGNED

Число -4265498067642357898 обрезается до 10 цыфр, а значения поле text до 191 символа.
Возможно ли задать длину в php файле перед записью в БД?
  • Вопрос задан
  • 349 просмотров
Пригласить эксперта
Ответы на вопрос 2
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Используйте BIGINT вместо INT
И тогда можно вписывать числа
от -9223372036854775808 до 9223372036854775807 (BIGINT)
или
от 0 до 18446744073709551615 (BIGINT UNSIGNED)
если надо записать отрицательное число то свойство UNSIGNED точно не надо выставлять

Для текста длиной в 500 символов используйте varchar(500)
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Главная проблема с тем видео которое ты смотришь на Ютубе - оно втирает тебе что писать на пхп можно не зная программирования и SQL. Разумеется, это враньё, только чтобы впарить тебе видео

Но разумеется это не так. Лучшее что ты можешь сделать - это забыть про все о чем тебе ездил по ушам этот жулик, взять нормальную книжку, например Котерова, и учит язык нормально.

Чтобы потом таких вопросов но возникало, в таблицу сам мог сделать нормально, такую:

update_id - int(11) UNSIGNED
text - varchar(500) character set utf8mb4_unicode_ci
create_date - datetime
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы