ibase_gen_id()
(PHP 5, PHP 7)
Increments the named generator and returns its new value
说明
ibase_gen_id(string $generator[,int $increment= 1[,resource $link_identifier= NULL
]]): mixed
Warning本函数还未编写文档,仅有参数列表。
返回值
Returns new generator value as integer, or as string if the value is too big.
EXAMPLE: You need to know the generator´s value after INSERT: Before INSERT-Statement run $nextnumber=ibase_gen_id ("GEN_NAME",1); GEN_NAME: is the generator´s name 1: means add 1 to actual value of generator $nextnumber: is variable to store generators value after incrementing In the INSERT-Statement you can use $nextnumber instead of using generator directly like in: INSERT INTO test (field1, field2) VALUES gen_id(gen_test_id, 1), 'testme');
$sql="INSERT INTO mitabla(campo1,campo2,..campo n) VALUES(GEN_ID(mitabla1_codigo_gen,1),'contenido 1', 'contenido 2', 'contenido n' )";
Question arose on php-dev: How does ibase_gen_id() handle 64bit values? Interbase 6/Firebird generators are always 64-bit signed integers (Firebird's BIGINT type), regardless of the platform the client is running. On 64-bit platforms, this will never require conversion as PHP's int type is 64 bits wide on those platforms. On 32-bit platforms, the generated value is converted to a string if it exceeds the limits of a 32-bit signed integer. (This behaviour is consistent with the ibase_fetch_*() functions, that will use strings to represent numerical values that cannot be represented accurately using native PHP numerical types.) [Edited by PHP/Interbase maintainer.]