ibase_gen_id
(PHP 5)
ibase_gen_id — Increments the named generator and returns its new value
Description
mixed ibase_gen_id
( string
$generator
[, int $increment
= 1
[, resource $link_identifier
= NULL
]] )Warning
This function is currently not documented; only its argument list is available.
Return Values
Returns new generator value as integer, or as string if the value is too big.
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Расширения для работы с базами данных отдельных производителей
- Firebird/InterBase
- 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_trans
- ibase_wait_event
Коментарии
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.]
$sql="INSERT INTO mitabla(campo1,campo2,..campo n) VALUES(GEN_ID(mitabla1_codigo_gen,1),'contenido 1', 'contenido 2', 'contenido n' )";
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');