会点点代码修改,会各种程序上手运营,会电商,会运营,还会吃点喝点!*_*
当前位置:首页- emlog MVC解构6 - 工具类之Database和数据库类

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

作者:李元波发布时间:2024-12-12 08:41分类: 日常 浏览:6评论:0


导读:上篇中Dispatcher路由分发器类是一个关键的中转类,前面的Options是一个重要的配置类。emlog拥有各种各样的工具类,保存在include/lib/里。下面首先来分析非...

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

标签:


发表评论: