Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Firebird/InterBase Functions : ibase_gen_id

ibase_gen_id

Increments the named generator and returns its new value (PHP 5)
mixed ibase_gen_id ( string generator [, int increment [, resource link_identifier]] )


Code Examples / Notes » ibase_gen_id

mfischer

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.]


robert

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');


escoric

$sql="INSERT INTO mitabla(campo1,campo2,..campo n) VALUES(GEN_ID(mitabla1_codigo_gen,1),'contenido 1', 'contenido 2', 'contenido n' )";

Change Language


Follow Navioo On Twitter
ibase_add_user
ibase_affected_rows
ibase_backup
ibase_blob_add
ibase_blob_cancel
ibase_blob_close
ibase_blob_create
ibase_blob_echo
ibase_blob_get
ibase_blob_import
ibase_blob_info
ibase_blob_open
ibase_close
ibase_commit_ret
ibase_commit
ibase_connect
ibase_db_info
ibase_delete_user
ibase_drop_db
ibase_errcode
ibase_errmsg
ibase_execute
ibase_fetch_assoc
ibase_fetch_object
ibase_fetch_row
ibase_field_info
ibase_free_event_handler
ibase_free_query
ibase_free_result
ibase_gen_id
ibase_maintain_db
ibase_modify_user
ibase_name_result
ibase_num_fields
ibase_num_params
ibase_param_info
ibase_pconnect
ibase_prepare
ibase_query
ibase_restore
ibase_rollback_ret
ibase_rollback
ibase_server_info
ibase_service_attach
ibase_service_detach
ibase_set_event_handler
ibase_timefmt
ibase_trans
ibase_wait_event
eXTReMe Tracker