好!欢迎访问迷津渡口 现在时间是:

迷津渡口

越感到迷惑 越接近真理

emlog MVC解构6--工具类们之Database和数据库类

上篇中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()

构造函数,主要作用是

  1. 获取一个内部mysql数据连接对象$this->conn

  2. 若错误,根据错误码输出相应错误信息

  3. MySql版本大于4.1,则配置查询编码为UTF8

  4. 选择emlog的数据库

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()

构造函数,主要作用是

  1. 获取一个内部mysqli数据连接对象$this->conn,包含选择emlog数据库

  2. 若错误,根据错误码输出相应错误信息

  3. 配置查询编码为UTF8

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数据库类了。

点赞1
   支持一下
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
 点赞
 签到
 表情
 图片
 代码
提交评论

清空信息
关闭评论
 00:00/00:00
我想和你虚度时光 - 花房姑娘(9)
  1. 恋恋风尘
  2. 恋恋风尘
  3. 恋恋风尘
  4. 恋恋风尘
  5. 恋恋风尘
  6. 恋恋风尘
  7. 恋恋风尘
  8. 恋恋风尘
  9. 恋恋风尘