PHP. Руководство по PHP. 2005
DB++ Functions
XXIV. DB++ Functions
Внимание. Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.
Введение
db++, made by the German company Concept asa, is a relational database system with high performance and low memory and disk usage in mind. While providing SQL as an additional language interface, it is not really a SQL database in the first place but provides its own AQL query language which is much more influenced by the relational algebra then SQL is.
Concept asa always had an interest in supporting open source languages, db++ has had Perl and Tcl call interfaces for years now and uses Tcl as its internal stored procedure language.
Требования
This extension relies on external client libraries so you have to have a db++ client installed on the system you want to use this extension on.
Concept asa provides db++ Demo versions and documentation for Linux, some other Unix versions. There is also a Windows version of db++, but this extension doesn't support it (yet).
Установка
In order to build this extension yourself you need the db++ client libraries and header files to be installed on your system (these are included in the db++ installation archives by default). You have to run configure with option --with-dbplus to build this extension.
configure looks for the client libraries and header files under the default paths /usr/dbplus, /usr/local/dbplus and /opt/dblus. If you have installed db++ in a different place you have add the installation path to the configure option like this: --with-dbplus=/your/installation/path.
Настройка во время выполнения
Данное расширение не определяет никакие директивы конфигурации в php.ini.
Типы ресурсов
dbplus_relation
Most db++ functions operate on or return dbplus_relation resources. A dbplus_relation is a handle to a stored relation or a relation generated as the result of a query.
Предопределенные константы
Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.
db++ error codes
Таблица 1. DB++ Error Codes
PHP Constant | db++ constant | meaning |
---|---|---|
- DBPLUS_ERR_NOERR (integer) | ERR_NOERR | Null error condition |
- DBPLUS_ERR_DUPLICATE (integer) | ERR_DUPLICATE | Tried to insert a duplicate tuple |
- DBPLUS_ERR_EOSCAN (integer) | ERR_EOSCAN | End of scan from rget() |
- DBPLUS_ERR_EMPTY (integer) | ERR_EMPTY | Relation is empty (server) |
- DBPLUS_ERR_CLOSE (integer) | ERR_CLOSE | The server can't close |
- DBPLUS_ERR_WLOCKED (integer) | ERR_WLOCKED | The record is write locked |
- DBPLUS_ERR_LOCKED (integer) | ERR_LOCKED | Relation was already locked |
- DBPLUS_ERR_NOLOCK (integer) | ERR_NOLOCK | Relation cannot be locked |
- DBPLUS_ERR_READ (integer) | ERR_READ | Read error on relation |
- DBPLUS_ERR_WRITE (integer) | ERR_WRITE | Write error on relation |
- DBPLUS_ERR_CREATE (integer) | ERR_CREATE | Create() system call failed |
- DBPLUS_ERR_LSEEK (integer) | ERR_LSEEK | Lseek() system call failed |
- DBPLUS_ERR_LENGTH (integer) | ERR_LENGTH | Tuple exceeds maximum length |
- DBPLUS_ERR_OPEN (integer) | ERR_OPEN | Open() system call failed |
- DBPLUS_ERR_WOPEN (integer) | ERR_WOPEN | Relation already opened for writing |
- DBPLUS_ERR_MAGIC (integer) | ERR_MAGIC | File is not a relation |
- DBPLUS_ERR_VERSION (integer) | ERR_VERSION | File is a very old relation |
- DBPLUS_ERR_PGSIZE (integer) | ERR_PGSIZE | Relation uses a different page size |
- DBPLUS_ERR_CRC (integer) | ERR_CRC | Invalid crc in the superpage |
- DBPLUS_ERR_PIPE (integer) | ERR_PIPE | Piped relation requires lseek() |
- DBPLUS_ERR_NIDX (integer) | ERR_NIDX | Too many secondary indices |
- DBPLUS_ERR_MALLOC (integer) | ERR_MALLOC | Malloc() call failed |
- DBPLUS_ERR_NUSERS (integer) | ERR_NUSERS | Error use of max users |
- DBPLUS_ERR_PREEXIT (integer) | ERR_PREEXIT | Caused by invalid usage |
- DBPLUS_ERR_ONTRAP (integer) | ERR_ONTRAP | Caused by a signal |
- DBPLUS_ERR_PREPROC (integer) | ERR_PREPROC | Error in the preprocessor |
- DBPLUS_ERR_DBPARSE (integer) | ERR_DBPARSE | Error in the parser |
- DBPLUS_ERR_DBRUNERR (integer) | ERR_DBRUNERR | Run error in db |
- DBPLUS_ERR_DBPREEXIT (integer) | ERR_DBPREEXIT | Exit condition caused by prexit() * procedure |
- DBPLUS_ERR_WAIT (integer) | ERR_WAIT | Wait a little (Simple only) |
- DBPLUS_ERR_CORRUPT_TUPLE (integer) | ERR_CORRUPT_TUPLE | A client sent a corrupt tuple |
- DBPLUS_ERR_WARNING0 (integer) | ERR_WARNING0 | - The Simple routines encountered a non fatal error which was corrected |
- DBPLUS_ERR_PANIC (integer) | ERR_PANIC | - The server should not really die but after a disaster send ERR_PANIC to all its clients |
- DBPLUS_ERR_FIFO (integer) | ERR_FIFO | Can't create a fifo |
- DBPLUS_ERR_PERM (integer) | ERR_PERM | Permission denied |
- DBPLUS_ERR_TCL (integer) | ERR_TCL | TCL_error |
- DBPLUS_ERR_RESTRICTED (integer) | ERR_RESTRICTED | Only two users |
- DBPLUS_ERR_USER (integer) | ERR_USER | - An error in the use of the library by an application programmer |
- DBPLUS_ERR_UNKNOWN (integer) | ERR_UNKNOWN |
Содержание
dbplus_add -- Add a tuple to a relation
dbplus_aql -- Perform AQL query
dbplus_chdir -- Get/Set database virtual current directory
dbplus_close -- Close a relation
dbplus_curr -- Get current tuple from relation
dbplus_errcode -- Get error string for given errorcode or last error
dbplus_errno -- Get error code for last operation
dbplus_find -- Set a constraint on a relation
dbplus_first -- Get first tuple from relation
dbplus_flush -- Flush all changes made on a relation
dbplus_freealllocks -- Free all locks held by this client
dbplus_freelock -- Release write lock on tuple
dbplus_freerlocks -- Free all tuple locks on given relation
dbplus_getlock -- Get a write lock on a tuple
dbplus_getunique -- Get an id number unique to a relation
dbplus_info -- Get information about a relation
dbplus_last -- Get last tuple from relation
dbplus_lockrel -- Request write lock on relation
dbplus_next -- Get next tuple from relation
dbplus_open -- Open relation file
dbplus_prev -- Get previous tuple from relation
dbplus_rchperm -- Change relation permissions
dbplus_rcreate -- Creates a new DB++ relation
dbplus_rcrtexact -- Creates an exact but empty copy of a relation including indices
dbplus_rcrtlike -- Creates an empty copy of a relation with default indices
dbplus_resolve -- Resolve host information for relation
dbplus_restorepos -- Restore position
dbplus_rkeys -- Specify new primary key for a relation
dbplus_ropen -- Open relation file local
dbplus_rquery -- Perform local (raw) AQL query
dbplus_rrename -- Rename a relation
dbplus_rsecindex -- Create a new secondary index for a relation
dbplus_runlink -- Remove relation from filesystem
dbplus_rzap -- Remove all tuples from relation
dbplus_savepos -- Save position
dbplus_setindex -- Set index
dbplus_setindexbynumber -- Set index by number
dbplus_sql -- Perform SQL query
dbplus_tcl -- Execute TCL code on server side
dbplus_tremove -- Remove tuple and return new current tuple
dbplus_undo -- Undo
dbplus_undoprepare -- Prepare undo
dbplus_unlockrel -- Give up write lock on relation
dbplus_unselect -- Remove a constraint from relation
dbplus_update -- Update specified tuple in relation
dbplus_xlockrel -- Request exclusive lock on relation
dbplus_xunlockrel -- Free exclusive lock on relation
dbmreplace
dbplus_add