Li Yuan Bo
啥都会点……-李元波
上篇中Dispatcher路由分发器类是一个关键的中转类,前面的Options是一个重要的配置类。
emlog拥有各种各样的工具类,保存在include/lib/里。
下面首先来分析非常重要的Database数据库操作路由类和两种数据库类。
Database类:数据库操作路由
仅有一个静态方法:
public static function getInstance | 根据Option::DEFAULT_MYSQLCONN配置参数: 如果是'mysqli',就调用MySqlii::getInstance()返回一个MySqlii的实例 如果是'mysql',就调用MySql::getInstance()返回一个Mysql的实例。 |
MySql类:MySql数据库操作类
属性表:
属性 | 注释 |
private $queryCount=0 | 查询次数,int类型 |
private $conn | 内部数据连接对象,resource类型 |
private $result | 内部数据结果,resource类型 |
private static $instance=null | 静态属性,一个内部实例对象 |
方法表:
方法 | 注释 |
private function __construct() | |
public static function getInstance() | 静态方法,配置$this->instance为一个数据库连接实例并返回 |
function close() | 关闭数据库连接 |
function query($sql,$ignore_err=FALSE) | 发送查询语句,将结果赋值给$this->result并返回,增加查询次数的统计$this->queryCount。第一个参数为查询语句,第二个参数为默认参数,是否忽略错误,默认FALSE不忽略,设为TRUE则忽略错误,不管是否有错都不报错且返回$this->result |
function fetch_array($query,$type=MYSQL_ASSOC) | 从结果集中取得一行作为关联数组/数字索引数组,第一个参数为查询结果,第二个参数为获取数组的类型,默认为MYSQL_ASSOC,获取关联数组,还可设置为MYSQL_NUL获取数字索引数组,MYSQL_BOTH同时获取关联和数字索引数组合并的数组。 |
function once_fetch_array($sql) | 查询并获取关联数组,参数为查询语句,查询将仅仅取得结果集中第一行的关联数组并返回 |
function fetch_row($query) | 从结果集中取得一行作为数字索引数组,参数为查询结果,获取一行数字索引数组并返回 |
function num_rows($query) | 取得结果集中行的数目,参数为查询结果,返回结果集中行的数目 |
function num_fields($query) | 取得结果集中字段(列)的数目,参数为查询结果,返回结果集中字段的数目 |
function insert_id() | 返回上一步 INSERT 操作产生的 ID,如果上一查询没有产生 AUTO_INCREMENT 的 ID,则 返回 0 |
function geterror() | 返回mysql错误 |
function geterrno() | 返回mysql错误编码 |
function affected_rows() | 返回前一次mysql操作所影响的记录行数 |
function getMysqlVersion() | 取得mysql数据库版本信息 |
function getQueryCount() | 取得数据库查询次数$this->queryCount |
function escape_string($sql) | 将查询语句中的特殊字符转义,并考虑到连接的当前字符集,返回转义后的语句 |
MySqlii类:MySqli数据库操作类
属性表:
属性 | 注释 |
private $queryCount=0 | 查询次数,int类型 |
private $conn | 内部数据连接对象,mysqli resource类型 |
private $result | 内部数据结果,mysqli_result resource类型 |
private static $instance=null | 静态属性,一个内部实例对象 |
方法表:
方法 | 注释 |
private function __construct() | |
public static function getInstance() | 静态方法,配置$this->instance为一个mysqli数据库连接实例并返回 |
function close() | 关闭数据库连接 |
function query($sql,$ignore_err=FALSE) | 发送查询语句,将结果赋值给$this->result并返回,增加查询次数的统计$this->queryCount。第一个参数为查询语句,第二个参数为默认参数,是否忽略错误,默认FALSE不忽略,设为TRUE则忽略错误,不管是否有错都不报错且返回$this->result |
function fetch_array(mysqli_result $query,$type=MYSQLI_ASSOC) | 从结果集中取得一行作为关联数组/数字索引数组,第一个参数为查询结果,第二个参数为获取数组的类型,默认为MYSQLI_ASSOC,获取关联数组,还可设置为MYSQLI_NUL获取数字索引数组,MYSQLI_BOTH同时获取关联和数字索引数组合并的数组。 |
function once_fetch_array($sql) | 查询并获取关联数组,参数为查询语句,查询将仅仅取得结果集中第一行的关联数组并返回 |
function fetch_row(mysqli_result $query) | 从结果集中取得一行作为数字索引数组,参数为查询结果,获取一行数字索引数组并返回 |
function num_rows(mysqli_result$query) | 取得结果集中行的数目,参数为查询结果,返回结果集中行的数目 |
function num_fields(mysqli_result $query) | 取得结果集中字段(列)的数目,参数为查询结果,返回结果集中字段的数目 |
function insert_id() | 返回上一步 INSERT 操作产生的 ID,如果上一查询没有产生 AUTO_INCREMENT 的 ID,则 返回 0 |
function geterror() | 返回mysql错误 |
function geterrno() | 返回mysql错误编码 |
function affected_rows() | 返回前一次mysql操作所影响的记录行数 |
function getMysqlVersion() | 取得mysql数据库版本信息 |
function getQueryCount() | 取得数据库查询次数$this->queryCount |
function escape_string($sql) | 将查询语句中的特殊字符转义,并考虑到连接的当前字符集,返回转义后的语句 |
可以发现,MySql和MySqlii两个数据库类的属性表和方法列表是一致的,因此采用Database数据库操作路由就可以不考虑采用的是MySql还是MySqlii数据库类了。
标签:emlog
发表评论: