Проблема с PHP mysql bigint

У меня две таблицы с bigint:

table1 id bigint(20) PK autoincrement name varchar(40), text table2 id bigint(20) PK autoincrement created datetime text_field id_table1_ref bigint(20) 

После вставки данных в таблицу1 и попытки вставить table1.id в таблицу2.id_table1_ref, число отличается, то есть:

Номер 1552545662588 из таблицы1.t1 становится 1552545662, или, что еще хуже, отрицательным числом.

Я знаю, что это проблема с настройками, но я не могу понять, как это сделать. Я попытался настроить подписанные / неузнанные значения для полей, но это не сработает.

Это происходит на моем локальном компьютере UNIX, на сервере все работает нормально, по крайней мере пока.

Любая помощь приветствуется.

Related of "Проблема с PHP mysql bigint"

Вы должны преобразовать его в строку в SQL, прежде чем вводить ее в PHP. В PHP вы можете использовать GMP для обработки номера.

Документы MySQL по конвертации: http://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#function_convert

Кроме того, PHP, по крайней мере, в некоторых 64-разрядных операционных системах (например, FreeBSD AMD64) использует 8-байтный int, проверяемый путем тестирования с помощью

echo 'Размер int is' .PHP_INT_SIZE;

Поэтому, если вы собираетесь работать только с 64-разрядной операционной системой, вам не нужно управлять BIGINT как строки в PHP.

Я решил эту проблему, перейдя на другую версию php, которая меняется с 64-битной версии php на 32-битную версию php. Это действительно работает для меня.