An interesting little question has pooped up.
How big is an integer?
Firebird uses BIGINT or INT_64 for generator values, and the new
ibase_gen_id in PHP5 returns that value as an integer.
Has any thought been given to managing 64bit field values in PHP5?
--
Lester Caine
L.S.Caine Electronic Services
Lester Caine wrote:
An interesting little question has pooped up.
How big is an integer?
Firebird uses BIGINT or INT_64 for generator values, and the new
ibase_gen_id in PHP5 returns that value as an integer.Has any thought been given to managing 64bit field values in PHP5?
Hi,
AFAIK ext/mysqli returns string in case the int value is too big to fit into 32 bits.
After that it's up to the user to decide what to do -> cast to float or use bcmath .
HTH,
Andrey
Andrey Hristov wrote:
Lester Caine wrote:
An interesting little question has popped up.
How big is an integer?
Firebird uses BIGINT or INT_64 for generator values, and the new
ibase_gen_id in PHP5 returns that value as an integer.Has any thought been given to managing 64bit field values in PHP5?
AFAIK ext/mysqli returns string in case the int value is too big to fit
into 32 bits.
After that it's up to the user to decide what to do -> cast to float or
use bcmath .
That will probably work for returning field values in a result set, the
particular problem I am looking at is a function that is defined as
returning an integer, but which could potentially contain a 64 bit value.
Is any work being done on handling THAT potential time bomb?
--
Lester Caine
L.S.Caine Electronic Services
Lester Caine wrote:
An interesting little question has pooped up.
How big is an integer?
Firebird uses BIGINT or INT_64 for generator values, and the new
ibase_gen_id in PHP5 returns that value as an integer.Has any thought been given to managing 64bit field values in PHP5?
Actually, this 'time bomb' has already been handled. If the generated
value doesn't fit in a long, it will return a string. So on a 64-bit
machine, this will never occur. On a 32-bit machine, the returned type
of ibase_gen_id() will suddenly start returning strings. Please note
that this is consistent with the behaviour of other ibase_*() functions
that handle BIGINTs.
--
Ard