公有成员 | |
| FLEA_Db_Driver_Pgsql ($dsn=false) | |
| connect ($dsn=false) | |
| close () | |
| execute ($sql, $inputarr=null, $throw=true) | |
| qstr ($value) | |
| qtable ($tableName) | |
| qfield ($fieldName, $tableName=null) | |
| qfields ($fields, $tableName=null) | |
| nextId ($seqName= 'sdbo_seq', $startValue=1) | |
| createSeq ($seqName= 'sdbo_seq', $startValue=1) | |
| dropSeq ($seqName= 'sdbo_seq') | |
| insertId () | |
| affectedRows () | |
| fetchRow ($res) | |
| fetchAssoc ($res) | |
| freeRes ($res) | |
| selectLimit ($sql, $length= 'ALL', $offset=0) | |
| & | getAll ($sql) |
| & | getAllGroupBy ($sql, &$groupBy) |
| getAllWithFieldRefs ($sql, $field, &$fieldValues, &$reference) | |
| assemble ($sql, &$assocRowset, $mappingName, $oneToOne, $refKeyName, $limit=null) | |
| getOne ($sql) | |
| & | getRow ($sql) |
| & | getCol ($sql, $col=0) |
| & | metaColumns ($table, $normalize=true) |
| dbTimeStamp ($timestamp) | |
| startTrans () | |
| completeTrans ($commitOnNoErrors=true) | |
| failTrans () | |
| hasFailedTrans () | |
| _prepareSql ($sql, &$inputarr) | |
| _addslashes ($s) | |
| _findschema (&$table, &$schema) | |
公有属性 | |
| $NEXT_ID_SQL = "SELECT NEXTVAL('%s')" | |
| $CREATE_SEQ_SQL = "CREATE SEQUENCE %s START %s" | |
| $DROP_SEQ_SQL = "DROP SEQUENCE %s" | |
| $TRUE_VALUE = 1 | |
| $FALSE_VALUE = 0 | |
| $NULL_VALUE = 'NULL' | |
| $META_COLUMNS_SQL = "SELECT a.attname,t.typname,a.attlen,a.atttypmod,a.attnotnull,a.atthasdef,a.attnum FROM pg_class c, pg_attribute a,pg_type t WHERE relkind in ('r','v') AND (c.relname='%s' or c.relname = lower('%s')) and a.attname not like '....%%' AND a.attnum > 0 AND a.atttypid = t.oid AND a.attrelid = c.oid ORDER BY a.attnum" | |
| $META_COLUMNS_SQL1 = "SELECT a.attname, t.typname, a.attlen, a.atttypmod, a.attnotnull, a.atthasdef, a.attnum FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE relkind in ('r','v') AND (c.relname='%s' or c.relname = lower('%s')) and c.relnamespace=n.oid and n.nspname='%s' and a.attname not like '....%%' AND a.attnum > 0 AND a.atttypid = t.oid AND a.attrelid = c.oid ORDER BY a.attnum" | |
| $META_KEY_SQL = "SELECT ic.relname AS index_name, a.attname AS column_name,i.indisunique AS unique_key, i.indisprimary AS primary_key FROM pg_class bc, pg_class ic, pg_index i, pg_attribute a WHERE bc.oid = i.indrelid AND ic.oid = i.indexrelid AND (i.indkey[0] = a.attnum OR i.indkey[1] = a.attnum OR i.indkey[2] = a.attnum OR i.indkey[3] = a.attnum OR i.indkey[4] = a.attnum OR i.indkey[5] = a.attnum OR i.indkey[6] = a.attnum OR i.indkey[7] = a.attnum) AND a.attrelid = bc.oid AND bc.relname = '%s'" | |
| $META_DEFAULT_SQL = "SELECT d.adnum as num, d.adsrc as def from pg_attrdef d, pg_class c where d.adrelid=c.oid and c.relname='%s' order by d.adnum" | |
| $dsn = null | |
| $conn = null | |
| $log = array() | |
| $enableLog = false | |
| $lasterr = null | |
| $lasterrcode = null | |
| $_transCount = 0 | |
| $_transCommit = true | |
| $_lastrs = null | |
| FLEA_Db_Driver_Pgsql::FLEA_Db_Driver_Pgsql | ( | $ | dsn = false |
) |
| FLEA_Db_Driver_Pgsql::connect | ( | $ | dsn = false |
) |
连接数据库
| array | $dsn |
参考 $dsn、__THROW()、_addslashes()、execute()、FLEA::getAppInf()及FLEA::loadClass().
| FLEA_Db_Driver_Pgsql::execute | ( | $ | sql, | |
| $ | inputarr = null, |
|||
| $ | throw = true | |||
| ) |
执行一个查询,返回一个 resource 或者 boolean 值
| string | $sql | |
| array | $inputarr | |
| boolean | $throw 指示查询出错时是否抛出异常 |
参考 __THROW()、_prepareSql()、FLEA::loadClass()及log_message().
参考自 assemble()、completeTrans()、connect()、createSeq()、dropSeq()、getAll()、getAllGroupBy()、getAllWithFieldRefs()、getCol()、getOne()、getRow()、metaColumns()、nextId()、selectLimit()及startTrans().
| FLEA_Db_Driver_Pgsql::qstr | ( | $ | value | ) |
| FLEA_Db_Driver_Pgsql::qtable | ( | $ | tableName | ) |
| FLEA_Db_Driver_Pgsql::qfield | ( | $ | fieldName, | |
| $ | tableName = null | |||
| ) |
| FLEA_Db_Driver_Pgsql::qfields | ( | $ | fields, | |
| $ | tableName = null | |||
| ) |
| FLEA_Db_Driver_Pgsql::nextId | ( | $ | seqName = 'sdbo_seq', |
|
| $ | startValue = 1 | |||
| ) |
为数据表产生下一个序列值,失败返回 false
| string | $seqName | |
| string | $startValue |
| FLEA_Db_Driver_Pgsql::createSeq | ( | $ | seqName = 'sdbo_seq', |
|
| $ | startValue = 1 | |||
| ) |
| FLEA_Db_Driver_Pgsql::dropSeq | ( | $ | seqName = 'sdbo_seq' |
) |
| FLEA_Db_Driver_Pgsql::insertId | ( | ) |
| FLEA_Db_Driver_Pgsql::fetchRow | ( | $ | res | ) |
| FLEA_Db_Driver_Pgsql::fetchAssoc | ( | $ | res | ) |
| FLEA_Db_Driver_Pgsql::selectLimit | ( | $ | sql, | |
| $ | length = 'ALL', |
|||
| $ | offset = 0 | |||
| ) |
进行限定记录集的查询(PostgreSQL 7 以上版本可用)
| string | $sql | |
| int | $length | |
| int | $offset |
参考 execute().
参考自 assemble().
| & FLEA_Db_Driver_Pgsql::getAll | ( | $ | sql | ) |
| & FLEA_Db_Driver_Pgsql::getAllGroupBy | ( | $ | sql, | |
| &$ | groupBy | |||
| ) |
| FLEA_Db_Driver_Pgsql::getAllWithFieldRefs | ( | $ | sql, | |
| $ | field, | |||
| &$ | fieldValues, | |||
| &$ | reference | |||
| ) |
| FLEA_Db_Driver_Pgsql::assemble | ( | $ | sql, | |
| &$ | assocRowset, | |||
| $ | mappingName, | |||
| $ | oneToOne, | |||
| $ | refKeyName, | |||
| $ | limit = null | |||
| ) |
执行一个查询,并将数据按照指定字段分组后与 $assocRowset 记录集组装在一起
| string|resource | $sql | |
| array | $assocRowset | |
| string | $mappingName | |
| boolean | $oneToOne | |
| string | $refKeyName | |
| mixed | $limit |
| FLEA_Db_Driver_Pgsql::getOne | ( | $ | sql | ) |
| & FLEA_Db_Driver_Pgsql::getRow | ( | $ | sql | ) |
| & FLEA_Db_Driver_Pgsql::getCol | ( | $ | sql, | |
| $ | col = 0 | |||
| ) |
| & FLEA_Db_Driver_Pgsql::metaColumns | ( | $ | table, | |
| $ | normalize = true | |||
| ) |
返回指定表(或者视图)的元数据
部分代码参考 ADOdb 实现。
每个字段包含下列属性:
name: 字段名 scale: 小数位数 type: 字段类型 simpleType: 简单字段类型(与数据库无关) maxLength: 最大长度 notNull: 是否不允许保存 NULL 值 primaryKey: 是否是主键 autoIncrement: 是否是自动增量字段 binary: 是否是二进制数据 unsigned: 是否是无符号数值 hasDefault: 是否有默认值 defaultValue: 默认值
| string | $table | |
| boolean | $normalize 指示是否规格化字段名 |
| FLEA_Db_Driver_Pgsql::dbTimeStamp | ( | $ | timestamp | ) |
| FLEA_Db_Driver_Pgsql::completeTrans | ( | $ | commitOnNoErrors = true |
) |
| FLEA_Db_Driver_Pgsql::failTrans | ( | ) |
强制指示在调用 completeTrans() 时回滚事务
| FLEA_Db_Driver_Pgsql::_prepareSql | ( | $ | sql, | |
| &$ | inputarr | |||
| ) |
| FLEA_Db_Driver_Pgsql::_addslashes | ( | $ | s | ) |
| FLEA_Db_Driver_Pgsql::_findschema | ( | &$ | table, | |
| &$ | schema | |||
| ) |
| FLEA_Db_Driver_Pgsql::$NEXT_ID_SQL = "SELECT NEXTVAL('%s')" |
| FLEA_Db_Driver_Pgsql::$META_COLUMNS_SQL = "SELECT a.attname,t.typname,a.attlen,a.atttypmod,a.attnotnull,a.atthasdef,a.attnum FROM pg_class c, pg_attribute a,pg_type t WHERE relkind in ('r','v') AND (c.relname='%s' or c.relname = lower('%s')) and a.attname not like '....%%' AND a.attnum > 0 AND a.atttypid = t.oid AND a.attrelid = c.oid ORDER BY a.attnum" |
| FLEA_Db_Driver_Pgsql::$META_COLUMNS_SQL1 = "SELECT a.attname, t.typname, a.attlen, a.atttypmod, a.attnotnull, a.atthasdef, a.attnum FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n WHERE relkind in ('r','v') AND (c.relname='%s' or c.relname = lower('%s')) and c.relnamespace=n.oid and n.nspname='%s' and a.attname not like '....%%' AND a.attnum > 0 AND a.atttypid = t.oid AND a.attrelid = c.oid ORDER BY a.attnum" |
| FLEA_Db_Driver_Pgsql::$META_KEY_SQL = "SELECT ic.relname AS index_name, a.attname AS column_name,i.indisunique AS unique_key, i.indisprimary AS primary_key FROM pg_class bc, pg_class ic, pg_index i, pg_attribute a WHERE bc.oid = i.indrelid AND ic.oid = i.indexrelid AND (i.indkey[0] = a.attnum OR i.indkey[1] = a.attnum OR i.indkey[2] = a.attnum OR i.indkey[3] = a.attnum OR i.indkey[4] = a.attnum OR i.indkey[5] = a.attnum OR i.indkey[6] = a.attnum OR i.indkey[7] = a.attnum) AND a.attrelid = bc.oid AND bc.relname = '%s'" |
| FLEA_Db_Driver_Pgsql::$META_DEFAULT_SQL = "SELECT d.adnum as num, d.adsrc as def from pg_attrdef d, pg_class c where d.adrelid=c.oid and c.relname='%s' order by d.adnum" |
| FLEA_Db_Driver_Pgsql::$dsn = null |
1.5.3