Я использую php-activerecord
для управления моими записями MySQL.строка, преобразованная в int слишком велика
Блок кода, где проблема ocurs заключается в следующем:
$item->id = $result->id;
$item->save();
var_dump($result->id); // string(10) "2386737351"
var_dump($item->id); // int(2147483647)
Проблема заключается в том, что $result->id
является string(10) "2386737351"
, как положено, но $item->id
становится int(2147483647)
. Моя колонка id
имеет тип BIGINT
, поэтому проблем нет.
Похоже php-activerecord
преобразует это значение в междунар снова который колпачок на это максимальное значение 2147483647.
Очевидно, что это ужасно неправильно и вызывает Duplicate entry '2147483647' for key 'unique'
.
Как я могу это преодолеть?
Почему присвоение значения переменной $ item-> преобразует его в int? Действительно ли это * код? но тем не менее, может ли php действительно управлять 64-битными целыми числами? Я думал, что слышал, что кто-то прокомментировал это, не мог, и должен управлять такими числами, как строки –