Public Member Functions | |
| tryConnect () | |
| setAdminPassCode ($u, $p) | |
| checkAdmin () | |
| canAdministrate () | |
| needVersion () | |
| hasTable ($tablename) | |
| beginTransaction () | |
| commitTransaction () | |
| rollbackTransaction () | |
| select ($table, $cols, $where="", $orderby="") | |
| insert ($table, array $values) | |
| update ($table, array $values, $where) | |
| deleteRows ($table, $where) | |
| sqlSelect ($table, $cols, $where, $orderby) | |
| sqlBeginTransaction () | |
| sqlCommitTransaction () | |
| sqlRollbackTransaction () | |
| escapeInt ($i) | |
| escapeIntList (array $il) | |
| escapeStringList (array $il) | |
| escapeListColumn (array $il, $table, $col) | |
| escapeString ($s) | |
| escapeBlob ($s) | |
| escapeBool ($s) | |
| escapeColumn ($table, $col, $val) | |
| getConfig ($key) | |
| setConfig ($key, $val) | |
| canUseDb () | |
| createDb () | |
| showCreateDb () | |
| lastError () | |
| isNull ($val) | |
| transactionIsUpdating () | |
| setTransactionUpdating ($tm) | |
| dumpBackup () | |
| syncSequences () | |
| syncSequence ($table) | |
| restoreData ($file, $overwrite) | |
Protected Member Functions | |
| lockDB ($writelock) | |
| unlockDB () | |
| createTable ($tablename, $table) | |
| tableName ($tname) | |
| dataType ($type) | |
| columnFlag ($flag, $col, $table) | |
| sqlCreateTable ($tablename, $table) | |
| createTableExtras ($tablename, $table) | |
| sqlCreateTablePrimaryKey (array $cols) | |
| sqlInsert ($table, array $values) | |
| sqlDelete ($table, $where) | |
| sqlUpdate ($table, array $values, $where) | |
Protected Attributes | |
| $transmode = false | |
Abstract base class for database engines
| DbEngine::beginTransaction | ( | ) | [abstract] |
begins a transaction; must be implemented by driver; use sqlBeginTransaction to create the SQL statement!
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::canAdministrate | ( | ) |
returns whether a passcode is known and admin.php may be used
| DbEngine::canUseDb | ( | ) |
tries to find out whether the connected DB version is usable
| DbEngine::checkAdmin | ( | ) |
check admin credentials
| DbEngine::columnFlag | ( | $ | flag, | |
| $ | col, | |||
| $ | table | |||
| ) | [protected] |
returns the correct name/coding of a flag: primarykey, notnull, unique (implies notnull), foreignkey:$table:$col, defaultint:$val, defaultstr:$val, index
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::commitTransaction | ( | ) | [abstract] |
ends a transaction successfully; must be implemented by driver; returns true on success; use sqlCommitTransaction to create the SQL statement!
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::createDb | ( | ) |
creates the database, used by admin.php only!!
| DbEngine::createTable | ( | $ | tablename, | |
| $ | table | |||
| ) | [abstract, protected] |
creates a table; the argument is an array of the form "col-name" => array("col-type", "flags"...); use sqlCreateTable() etc. to create the actual statement
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::createTableExtras | ( | $ | tablename, | |
| $ | table | |||
| ) | [protected] |
This function can be used to amend the column definitions of a table; if overwritten it must return a string; overwrite this to implement DB specific syntax
Reimplemented in MysqlEngine.
| DbEngine::dataType | ( | $ | type | ) | [protected] |
returns the correct type name for the required abstract data type; types that must be understood are: int32 (INTEGER), int64 (LONG INTEGER), seq32 (auto-incrementing int), seq64, bool (boolean), string:$length (text up to 255 chars, length is optional, default is 255; VARCHAR($length)), text (unlimited text)
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::deleteRows | ( | $ | table, | |
| $ | where | |||
| ) | [abstract] |
delete database values; returns the amount of rows deleted or false if an error occurred; use sqlDelete to create the SQL statement!
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::dumpBackup | ( | ) |
dump a backup (returned as string)
| DbEngine::escapeBlob | ( | $ | s | ) |
escapes blobs; the default uses addslashes and encloses the value in ''; it is recommended to overwrite this with the proper escaping procedure for the target DB
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::escapeBool | ( | $ | s | ) |
escapes a boolean value; the default translates 0, '0', 'f', 'false', 'n', 'no', false to FALSE and numerics !=0, 't', 'true', 'y', 'yes', true to TRUE; any other value (incl. the PHP constant null) is translated to NULL
Reimplemented in MysqlEngine.
| DbEngine::escapeColumn | ( | $ | table, | |
| $ | col, | |||
| $ | val | |||
| ) |
generic escape routine: queries the schema for the correct escape mechanism and then returns the appropriately escaped value
| DbEngine::escapeInt | ( | $ | i | ) |
escapes integers; the default implementation just makes sure it is an int (false and null are translated to NULL)
| DbEngine::escapeIntList | ( | array $ | il | ) |
escapes a list of integers; uses escapeInt for each element; automatically adds parentheses
| DbEngine::escapeListColumn | ( | array $ | il, | |
| $ | table, | |||
| $ | col | |||
| ) |
escapes a list of values for a specific column; uses escapeInt for each element; automatically adds parentheses
| DbEngine::escapeString | ( | $ | s | ) |
escapes strings; the default uses addslashes and encloses the value in ''; it is recommended to overwrite this with the proper escaping procedure for the target DB (false and null are translated to NULL)
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::escapeStringList | ( | array $ | il | ) |
escapes a list of strings; uses escapeInt for each element; automatically adds parentheses
| DbEngine::getConfig | ( | $ | key | ) |
returns a configuration setting
| DbEngine::hasTable | ( | $ | tablename | ) | [abstract] |
returns whether the table exists; must be implemented by driver
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::insert | ( | $ | table, | |
| array $ | values | |||
| ) | [abstract] |
insert values into a table; returns false on failure, the new primary key if a sequence was set, true otherwise; use sqlInsert to create the SQL statement!
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::isNull | ( | $ | val | ) |
returns whether the result value is NULL; the default interprets only the special value null as NULL
| DbEngine::lastError | ( | ) | [abstract] |
returns the error string of the last operation
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::lockDB | ( | $ | writelock | ) | [protected] |
locks the database - only used by the backup functions; if necessary should also start a transaction; default just starts a transaction
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::needVersion | ( | ) |
returns the version of the DB layout that is required by this version of Magic Smoke
| DbEngine::restoreData | ( | $ | file, | |
| $ | overwrite | |||
| ) |
called from admin.php: restore a backup
| DbEngine::rollbackTransaction | ( | ) | [abstract] |
ends a transaction with a rollback; must be implemented by driver; returns true on success; use sqlRollbackTransaction to create the SQL statement!
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::select | ( | $ | table, | |
| $ | cols, | |||
| $ | where = "", |
|||
| $ | orderby = "" | |||
| ) | [abstract] |
gets some data from the database; $table is the name of the table, $cols is the list of columns to return or "*" for all, $where is the where clause of the SQL-statement, $orderby may contain additional ORDER BY or GROUP BY clauses; returns array of rows, which are in *_fetch_array format; returns false on error; use sqlSelect to create the SQL statement!; make sure that NULL values are returned as PHP value null (most DB drivers already do this)
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::setAdminPassCode | ( | $ | u, | |
| $ | p | |||
| ) |
set the admin passcode; used by the config.php file if admin access is allowed
| DbEngine::setConfig | ( | $ | key, | |
| $ | val | |||
| ) |
sets a config setting
| DbEngine::setTransactionUpdating | ( | $ | tm | ) |
set the transaction mode: true if it is an updating transaction
| DbEngine::showCreateDb | ( | ) |
shows how the database would be created, used by admin.php only!!
| DbEngine::sqlBeginTransaction | ( | ) |
returns the SQL92 statement for beginning a transaction; overwrite this to implement DB specific syntax
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::sqlCommitTransaction | ( | ) |
returns the SQL92 statement for committing a transaction; overwrite this to implement DB specific syntax
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::sqlCreateTable | ( | $ | tablename, | |
| $ | table | |||
| ) | [protected] |
creates a SQL92 statement for creating a table; overwrite this to implement DB specific syntax
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::sqlCreateTablePrimaryKey | ( | array $ | cols | ) | [protected] |
creates primary key statement for sqlCreateTable; overwrite this to implement DB specific syntax
| DbEngine::sqlDelete | ( | $ | table, | |
| $ | where | |||
| ) | [protected] |
creates a SQL92 statement for deletes; overwrite this to implement DB specific syntax
| DbEngine::sqlInsert | ( | $ | table, | |
| array $ | values | |||
| ) | [protected] |
creates a SQL92 statement for inserts; overwrite this to implement DB specific syntax
| DbEngine::sqlRollbackTransaction | ( | ) |
returns the SQL92 statement for rolling a transaction back; overwrite this to implement DB specific syntax
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::sqlSelect | ( | $ | table, | |
| $ | cols, | |||
| $ | where, | |||
| $ | orderby | |||
| ) |
creates a SQL92 statement for selects; overwrite this to implement DB specific syntax; the concrete DB implementation should append "for update" to the select statement if $this->transmode is true and the DB supports it
| DbEngine::sqlUpdate | ( | $ | table, | |
| array $ | values, | |||
| $ | where | |||
| ) | [protected] |
creates a SQL92 statement for updates; overwrite this to implement DB specific syntax
| DbEngine::syncSequence | ( | $ | table | ) |
synchronize the sequence of one database table; overwrite to actually do something
Reimplemented in PGsqlEngine.
| DbEngine::syncSequences | ( | ) |
synchronize all sequences with current data
| DbEngine::tableName | ( | $ | tname | ) | [protected] |
transform an internally used table name to the actual table name in the DB; the default implementation returns exactly what it gets
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::transactionIsUpdating | ( | ) |
returns whether the DB driver currently believes to be in RW transaction mode
| DbEngine::tryConnect | ( | ) | [abstract] |
connect to the database, must be overwritten by DB driver
Reimplemented in MysqlEngine, and PGsqlEngine.
| DbEngine::unlockDB | ( | ) | [protected] |
unlocks the database - only used by the backup functions; if necessary should also commit a transaction; default just commits
Reimplemented in MysqlEngine.
| DbEngine::update | ( | $ | table, | |
| array $ | values, | |||
| $ | where | |||
| ) | [abstract] |
update database values; returns how many rows have been changed or false for failure; use sqlUpdate to create the SQL statement!
Reimplemented in MysqlEngine, and PGsqlEngine.
DbEngine::$transmode = false [protected] |
transaction RO/RW mode: false=assume readonly, true=assume inserts/updates
1.7.1