#1 jake

数据库操作类,用户的模型类继承于spModel将可以获得最为常用的数据库操作功能。
成员变量


  • public
  • $table -- 数据表表名称
  • $pk -- 数据表主键
  • $addrules -- 增加的自定义验证函数
  • $verifier -- 供检验值的规则与返回信息
  • $linker -- 表间关联的设置
  • protected
  • $tbl_name -- 数据表全名称
  • $_db -- 数据驱动程序


成员函数

public

  • __construct -- 构造函数
  • find -- 从数据表中查找一条记录
  • findAll -- 从数据表中查找记录
  • findSql -- 使用SQL语句进行查找操作,等于进行find,findAll等操作
  • findBy -- 按字段值查找一条记录
  • findCount -- 计算符合条件的记录数量
  • create -- 在数据表中新增一行数据
  • createAll -- 在数据表中新增多条记录
  • update -- 修改数据,该函数将根据参数中设置的条件而更新表中数据
  • updateField -- 按字段值修改一条记录
  • delete -- 按条件删除记录
  • deleteByPk -- 按给定的数据表的主键删除记录
  • query -- 执行SQL语句,相等于执行新增,修改,删除等操作
  • dumpSql -- 返回最后执行的SQL语句供分析
  • __val_escape -- 过滤转义字符
  • __call -- 魔术函数,执行模型扩展类的自动加载及使用

private

  • __prepera_format -- 按表字段调整适合的字段

位置

spModel类位于 SP_PATH/Core/spModel.php


函数详细__construct

构造函数

void __construct( void )

spModel类的构造函数,按应用程序配置进行数据库链接操作。

请注意,如spModel的子类,即是继承于spModel的数据模型类中覆盖了构造函数__construct(),开发者需要在子类的构造函数中调用父类的__construct(),才可以保证数据库的链接有效性。

class mymodel extends spModel{
        function __construct(){
                // 一些操作

                parent::__construct();
        }
}
find

从数据表中查找一条记录

array find(mixed conditions, string sort, string fields)

参数:


  • mixed conditions 查找条件,数组array("字段名"=>"查找值")或字符串,请注意在使用字符串时将需要开发者自行使用__val_escape来对输入值进行过滤
  • string sort 排序,等同于“ORDER BY ”
  • string fields 返回的字段范围,默认为返回全部字段的值

返回:


  • 按条件查询不到任何数据,find将返回FALSE
  • 如查找到预期的结果则返回结果数组,数组的键是字段名,数组的值是数据。
findAll

从数据表中查找记录

array findAll(mixed conditions, string sort, string fields, string limit)

参数:


  • mixed conditions 查找条件,数组array("字段名"=>"查找值")或字符串,请注意在使用字符串时将需要开发者自行使用__val_escape来对输入值进行过滤
  • string sort 排序,等同于“ORDER BY ”
  • string fields 返回的字段范围,默认为返回全部字段的值
  • string limit 返回的结果数量限制,等同于“LIMIT ”,如$limit = " 3, 5",即是从第3条记录开始获取,共获取5条记录

返回:


  • 按条件查询不到任何数据,findAll将返回FALSE
  • 如查找到预期的结果则返回结果数组。对比find返回的结果,findAll是返回了二维数组,并且数组的每一项将是代表一条记录的数组。
findSql

使用SQL语句进行查找操作,等于进行find,findAll等操作

array findSql(sql_string sql)

参数:


  • sql_string sql 字符串,需要进行查找的SQL语句

返回:


  • 如SQL语句执行成功并且获取到记录,则返回多维数组,形式与findAll返回结果相同。
  • 如无法查找到记录,则返回FALSE。

使用findSql()时,请注意:


  • 使用数据表的全名
  • 使用__val_escape()过滤浏览器提交的值
findBy

按字段值查找一条记录

array findBy(string field, string value)

参数:


  • string field 字符串,对应数据表中的字段名
  • string value 字符串,对应的值

返回:


  • 按条件查询不到任何数据,findBy将返回FALSE
  • 如查找到预期的结果则返回结果数组,数组的键是字段名,数组的值是数据。
findCount

计算符合条件的记录数量

int findCount(mixed conditions)

参数:


  • mixed conditions 查找条件,数组array("字段名"=>"查找值")或字符串,请注意在使用字符串时将需要开发者自行使用__val_escape来对输入值进行过滤

返回:

返回符合$conditions记录的数量,如无任何符合条件的记录将返回 0。

create

在数据表中新增一行数据

int create(array row)

参数:


  • array row 数组形式,数组的键是数据表中的字段名,键对应的值是需要新增的数据。

返回:

新增成功则返回新增的自增量ID,失败则返回FALSE。

createAll

在数据表中新增多条记录

void createAll(array rows)

参数:


  • array rows 数组形式,每项均为create的$row的一个数组
update

修改数据,该函数将根据参数中设置的条件而更新表中数据

bool update(mixed conditions, array row)

参数:


  • mixed conditions 数组形式,查找条件,此参数的格式用法与find/findAll的查找条件参数是相同的。
  • array row 数组形式,修改的数据,此参数的格式用法与create的$row是相同的。在符合条件的记录中,将对$row设置的字段的数据进行修改。

返回:


  • 返回TRUE则是语句执行成功,无论有无符合条件的记录,只要操作正常执行则返回TRUE。
  • 返回FALSE是语句执行失败
updateField

按字段值修改一条记录

bool updateField(mixed conditions, string field, string value)

参数:


  • mixed conditions 数组形式,查找条件,此参数的格式用法与find/findAll的查找条件参数是相同的。
  • string field 字符串,对应数据表中的需要修改的字段名
  • string value 字符串,新值

返回:

返回值参考update函数。

delete

按条件删除记录

bool delete(mixed conditions )

参数:


  • mixed conditions 数组形式,查找条件,此参数的格式用法与find/findAll的查找条件参数是相同的。

返回:


  • 返回TRUE则是语句执行成功,无论有无符合条件的记录,只要操作正常执行则返回TRUE。
  • 返回FALSE是语句执行失败
deleteByPk

按给定的数据表的主键删除记录,该函数简化了delete的操作,根据给定的主键删除对应的记录。

bool deleteByPk(mixed pk)

参数:


  • mixed pk 字符串或数字,数据表主键的值。

返回:

返回值参考delete函数。

query

执行SQL语句,相等于执行新增,修改,删除等操作

bool query(string sql)

参数:


  • string sql 字符串,需要执行的SQL语句

返回:


  • 返回TRUE则是语句执行成功,无论有无符合条件的记录,只要操作正常执行则返回TRUE。
  • 返回FALSE是语句执行失败。

使用query()时,请注意:


  • 使用数据表的全名
  • 使用__val_escape()过滤浏览器提交的值
dumpSql

返回最后执行的SQL语句供分析

string dumpSql(void)

__val_escape

过滤转义字符,保证数据库执行语句的安全。

__val_escape()将直接调用数据库驱动的__val_escape()函数进行字符过滤。

string __val_escape(string value)

参数:


  • string value 需要进行过滤的值

返回:

返回通过安全过滤的值。

__call

魔术函数,执行模型扩展类的自动加载及使用

__call()可以让spModel类支持更广泛的用途,如加入spLinker等关联的操作同时具备分页功能。

__prepera_format

私有函数,按表字段调整适合的字段

array __prepera_format(array rows)

参数:


  • array rows 输入的表字段

返回:

__prepera_format()将根据当前数据表的字段整理返回适合的字段。




2012-08-06 20:18:32