包 | database |
---|---|
类层次 | class QDB_Table |
版本 | $Id: table.php 2637 2009-07-27 09:09:09Z dualface $ |
QDB_Table 类(表数据入口)封装数据表的 CRUD 操作
属性 | 类型 | 描述 | 定义于 |
---|---|---|---|
$schema | string | 数据表的 schema | QDB_Table |
$name | string | 数据表名称 | QDB_Table |
$prefix | string | 数据表前缀 | QDB_Table |
属性 | 类型 | 描述 | 定义于 |
---|---|---|---|
$_pk | string|array | 主键字段名,如果是多个字段,则以逗号分割,或使用数组 | QDB_Table |
$_is_cpk | boolean | 指示是否使用了复合主键 | QDB_Table |
$_pk_count | int | 指示主键字段的总数 | QDB_Table |
$_conn | QDB_Adapter_Abstract | 数据访问对象 | QDB_Table |
$_cache_id | string | 当前表数据入口对象元信息的缓存id | QDB_Table |
$_meta | array | 数据表的元数据 | QDB_Table |
$_fields | array | 数据表的字段名 | QDB_Table |
方法 | 描述 | 定义于 |
---|---|---|
__construct() | 构造 Table 实例 | QDB_Table |
select() | 发起一个查询,获得一个 QDB_Select 查询对象 | QDB_Table |
insert() | 创建一条记录 | QDB_Table |
update() | 更新记录 | QDB_Table |
delete() | 删除符合条件的记录 | QDB_Table |
getFullTableName() | 返回数据表的完整名称(含 schema 和前缀) | QDB_Table |
nextID() | 为当前数据表的指定字段产生一个序列值 | QDB_Table |
columns() | 返回所有字段的元数据 | QDB_Table |
getPK() | 返回主键字段名 | QDB_Table |
setPK() | 设置数据表的主键 | QDB_Table |
isCompositePK() | 确认是否是复合主键 | QDB_Table |
getConn() | 返回该表数据入口对象使用的数据访问对象 | QDB_Table |
setConn() | 设置数据库访问对象 | QDB_Table |
init() | 初始化表数据入口 | QDB_Table |
方法 | 描述 | 定义于 |
---|---|---|
_setupConn() | 设置表数据入口使用的数据库访问对象 | QDB_Table |
_setupTableName() | 设置数据表名称 | QDB_Table |
_setupMeta() | 设置当前数据表的元数据 | QDB_Table |
_setupPk() | 设置数据表的主键 | QDB_Table |
数据表的 schema
数据表名称
数据表前缀
主键字段名,如果是多个字段,则以逗号分割,或使用数组
指示是否使用了复合主键
指示主键字段的总数
数据访问对象
当前表数据入口对象元信息的缓存id
指示表数据入口是否已经初始化
数据表的元数据
元数据是一个二维数组,每个元素的键名就是全小写的字段名,而键值则是该字段的数据表定义。
数据表的字段名
public Table __construct($config)
$config | array | |
{return} | Table |
构造 Table 实例
$config 参数允许有下列选项:
- schema: 指定数据表的 schema
- name: 指定数据表的名称
- name_prefix: 指定数据表的完整名称
- pk: 指定主键字段名
- conn: 指定数据库访问对象
- dsn_name: 指定 DSN 名称
public QDB_Select select()
发起一个查询,获得一个 QDB_Select 查询对象
public array|null insert($row, $return_pk_values)
$row | array | 要插入的记录 |
$return_pk_values | boolean | 是否返回新建记录的主键值 |
{return} | array|null |
创建一条记录
public void update($row, $where)
$row | array|QDB_Expr | 要更新的记录值 |
$where | mixed | 更新条件 |
{return} |
更新记录
如果 $row 参数中包含所有主键字段的值,并且没有指定 $where 参数,则假定更新主键字段值相同的记录。
如果 $row 是一个 QDB_Expr 表达式,则根据表达式内容更新数据库。
public void delete($where)
$where | mixed | |
{return} |
删除符合条件的记录
public string getFullTableName()
返回数据表的完整名称(含 schema 和前缀)
public mixed nextID($field_name)
$field_name | string | |
{return} | mixed |
为当前数据表的指定字段产生一个序列值
public array columns()
返回所有字段的元数据
public array getPK()
返回主键字段名
public void setPK($pk)
$pk | array|string | |
{return} |
设置数据表的主键
public boolean isCompositePK()
确认是否是复合主键
public QDB_Adapter_Abstract getConn()
返回该表数据入口对象使用的数据访问对象
public void setConn($conn)
$conn | QDB_Adapter_Abstract | |
{return} |
设置数据库访问对象
public void init()
初始化表数据入口
protected void _setupConn()
设置表数据入口使用的数据库访问对象
继承类可以覆盖此方法来自行控制如何设置数据库访问对象。
protected void _setupTableName()
设置数据表名称
继承类可覆盖此方法来自行控制如何设置数据表名称。
protected void _setupMeta()
设置当前数据表的元数据
protected void _setupPk()
设置数据表的主键
继承类可覆盖此方法来自行控制如何设置数据表主键。