好!欢迎访问迷津渡口 现在时间是: 天气 °C ~ °C

迷津渡口

越感到迷惑 越接近真理

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

清空信息
关闭评论
cnovas
 cnovas 2019-05-21 19:00回复
#211
<a href="http://www.snifferwalk.com/nike-zoom-kobe-3-blanco-zapatosl">nike zoom kobe 3 blanco</a> <a href="http://www.fishmackerel.com/nike-roshe-run-cool-gr%C3%A5-skoj">nike roshe run cool gr氓</a> <a href="http://www.lauraenergy.com/nike-lunarglide-8-kvinners-gr%C3%A5-himmelen-bl%C3%A5-obuvi">nike lunarglide 8 kvinners gr氓 himmelen bl氓</a> <a href="http://www.magellantt.com/adidas-zx-900-cielo-azul-azul-zapatosp">adidas zx 900 cielo azul azul</a> <a href="http://www.sportablecrew.com/kvinders-air-jordan-retro-12-r%C3%B8d-bl%C3%A5-skol">kvinders air jordan retro 12 r酶d bl氓</a> <a href="http://www.digisolnc.com/nike-zoom-winflo-2-rosa-arancia-scarpeh">nike zoom winflo 2 rosa arancia</a>
cnovas http://www.cnovas.com/
lauraenergy
 lauraenergy 2019-05-21 17:14回复
#210
<a href="http://www.tmzred.com/bridget-coach-sunglasses-coachh">bridget coach sunglasses</a> <a href="http://www.alcovozov.com/mens-nike-zoom-structure-18-pink-grey-shoesj">mens nike zoom structure 18 pink grey</a> <a href="http://www.ahmztradefx.com/nike-air-force-1-mid-university-bl%C3%A5-skol">nike air force 1 mid university bl氓</a> <a href="http://www.isampled.com/nike-kobe-9-mid-blanc-noir-chaussuresq">nike kobe 9 mid blanc noir</a> <a href="http://www.aldervets.com/nike-air-max-tailwind-8-femmes-or-noir-chaussuresl">nike air max tailwind 8 femmes or noir</a> <a href="http://www.vanltl.com/herren-nike-flyknit-lunar-3-lila-rot-schuhei">herren nike flyknit lunar 3 lila rot</a>
lauraenergy http://www.lauraenergy.com/
bamadu
 bamadu 2019-05-20 07:13回复
#209
<a href="http://www.chocopictures.com/nike-air-flight-89-noir-suede-chaussuresj">nike air flight 89 noir suede</a> <a href="http://www.baluntan.com/adidas-gazelle-lila-gelb-schuhek">adidas gazelle lila gelb</a> <a href="http://www.anderonedream.com/new-york-giants-color-rush-jersey-landon-collins-nflh">new york giants color rush jersey landon collins</a> <a href="http://www.variaponsel.com/vibram-five-fingers-kvinners-sprint-rose-r%C3%B8d-gul-obuvi">vibram five fingers kvinners sprint rose r酶d gul</a> <a href="http://www.allmydibs.com/nike-flyknit-trainer-white-black-shoesj">nike flyknit trainer white black</a> <a href="http://www.macusaa.com/nike-zoom-clear-out-black-shoesl">nike zoom clear out black</a>
bamadu http://www.bamadu.com/
velvetwifi
 velvetwifi 2019-05-20 06:00回复
#208
<a href="http://www.gaiaescort.com/ohio-state-buckeyes-top-of-the-world-ncaa-youth-signal-adjustable-cap-hath">ohio state buckeyes top of the world ncaa youth signal adjustable cap</a> <a href="http://www.hatbest.com/adidas-neo-rouge-chaussuresh">adidas neo rouge</a> <a href="http://www.playcheater.com/nike-air-max-2017-herren-blau-schwarz-schuheh">nike air max 2017 herren blau schwarz</a> <a href="http://www.alanyalinks.com/nike-air-pegasus-89-white-blue-shoesk">nike air pegasus 89 white blue</a> <a href="http://www.mxclimited.com/air-jordan-cp3-himmelbl%C3%A5-gr%C3%B8n-skoj">air jordan cp3 himmelbl氓 gr酶n</a> <a href="http://www.ueaydin.com/m%C3%A4nner-salomon-s-lab-sense-2-marine-royal-blau-schuheh">m盲nner salomon s lab sense 2 marine royal blau</a>
velvetwifi http://www.velvetwifi.com/
zululeads
 zululeads 2019-05-19 22:26回复
#207
<a href="http://www.cardiachits.com/air-jordan-retro-7-mujeres-gris-zapatosk">air jordan retro 7 mujeres gris</a> <a href="http://www.zestchannel.com/kvinders-nike-blazer-alle-lilla-skoi">kvinders nike blazer alle lilla</a> <a href="http://www.eczacinim.com/adidas-neo-leisure-svart-gr%C3%B8nn-obuvl">adidas neo leisure svart gr酶nn</a> <a href="http://www.chilangorails.com/nike-air-max-90-premium-gold-blue-shoesh">nike air max 90 premium gold blue</a> <a href="http://www.mariusen.com/air-jordan-retro-13-viola-cielo-blu-scarpei">air jordan retro 13 viola cielo blu</a> <a href="http://www.brittonoilco.com/dam%C3%A4nner-nike-roshe-run-high-blau-schwarz-schuhej">dam盲nner nike roshe run high blau schwarz</a>
zululeads http://www.zululeads.com/
claybrookpenn
 claybrookpenn 2019-05-19 05:16回复
#206
<a href="http://www.videogue.com/adidas-superstar-wei%C3%9F-and-rose-gold-stripes-schuheh">adidas superstar wei脽 and rose gold stripes</a> <a href="http://www.actuelvet.com/nike-flyknit-5.0-grey-shoesk">nike flyknit 5.0 grey</a> <a href="http://www.jstreetdoc.com/m%C3%A6nd-nike-lunar-tempo-bl%C3%A5-skol">m忙nd nike lunar tempo bl氓</a> <a href="http://www.rightcardeals.com/adidas-ace-16.1-fg-ag-solarbl%C3%A5-solargul-core-svart-obuvk">adidas ace 16.1 fg ag solarbl氓 solargul core svart</a> <a href="http://www.wearesmashed.com/nike-shox-grigio-maschio-scarpei">nike shox grigio maschio</a> <a href="http://www.icecardonline.com/hombres-nike-air-force-one-light-up-negro-zapatosh">hombres nike air force one light up negro</a>
claybrookpenn http://www.claybrookpenn.com/
pcwolftech
 pcwolftech 2019-05-18 00:36回复
#205
<a href="http://www.inckua.com/billig-nike-kobe-12-kvinders-gr%C3%A5-footc">billig nike kobe 12 kvinders gr氓</a> <a href="http://www.essodustade.com/gold-orange-womens-air-jordan-jumpman-team-shoes-sneakerc">gold orange womens air jordan jumpman team shoes</a> <a href="http://www.olgroupusainc.com/mackage-priya-coat-mackager">mackage priya coat</a> <a href="http://www.caryongpum.com/adidas-ace-16-pure-control-black-and-gold-skor">adidas ace 16 pure control black and gold</a> <a href="http://www.postanje.com/dallas-cowboys-thanksgiving-jersey-nflr">dallas cowboys thanksgiving jersey</a> <a href="http://www.synergysimple.com/ferragamo-reversible-belt-beltr">ferragamo reversible belt</a>
pcwolftech http://www.pcwolftech.com/
bonodescuento
 bonodescuento 2019-05-17 23:51回复
#204
<a href="http://www.araricambi.com/short-roxy-ugg-boots-uggsr">short roxy ugg boots</a> <a href="http://www.paulacorley.com/adidas-tubular-runner-khaki-skou">adidas tubular runner khaki</a> <a href="http://www.lbsportsguys.com/bon-march%C3%A9-nike-kobe-8-hommes-argent-shoesa">bon march茅 nike kobe 8 hommes argent</a> <a href="http://www.iraqbody.com/snapback-new-era-9fifty-hatr">snapback new era 9fifty</a> <a href="http://www.debbiebissett.com/air-jordan-6-retro-low-white-university-blue-light-trainersa">air jordan 6 retro low white university blue light</a> <a href="http://www.michellestill.com/adidas-porsche-typ-64-blue-purple-skof">adidas porsche typ 64 blue purple</a>
bonodescuento http://www.bonodescuento.com/
ibadoracao
 ibadoracao 2019-05-16 18:49回复
#203
<a href="http://www.leatheroneph.com/ralph-lauren-long-sleeve-collar-poloh">ralph lauren long sleeve collar</a> <a href="http://www.massageturkey.com/nike-herre-free-flyknit-5.0-v2-l%C3%B8b-sko-foota">nike herre free flyknit 5.0 v2 l酶b sko</a> <a href="http://www.codeconuts.com/nike-magista-cleats-azul-plata-runninga">nike magista cleats azul plata</a> <a href="http://www.radiationism.com/air-jordan-retro-1-femmes-or-rouge-scarpee">air jordan retro 1 femmes or rouge</a> <a href="http://www.chessarbiters.com/adidas-prossoator-absolado-trx-tf-junior-runningg">adidas prossoator absolado trx tf junior</a> <a href="http://www.varisofttech.com/adidas-protator-retro-schuhei">adidas protator retro</a>
ibadoracao http://www.ibadoracao.com/
myshoesonsale
 myshoesonsale 2019-05-16 14:16回复
#202
<a href="http://www.sophiecrooks.com/nike-air-max-1-gs-triple-sort-skok">nike air max 1 gs triple sort</a> <a href="http://www.hkelitemodels.com/kaufen-gr%C3%BCn-converse-schuheh">kaufen gr眉n converse</a> <a href="http://www.graciecomm.com/womens-nike-flyknit-white-shoesk">womens nike flyknit white</a>
myshoesonsale http://www.myshoesonsale.com/
顶部留言底部
 00:00/00:00
我想和你虚度时光 - 花房姑娘(9)
  1. 我想和你虚度时光
  2. 花房姑娘
  3. 恋恋风尘
  4. 我喜爱一切不彻底的事物
  5. 我的心里是满的
  6. Long Way
  7. 给少年的歌
  8. 晴日共剪窗
  9. 天上的月你的脸