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

清空信息
关闭评论
intoloo
 intoloo 约 13 小时前回复
#67
<a href="http://www.ictbel.com/nike-paul-rodriguez-9-womens-purple-skob">nike paul rodriguez 9 womens purple</a> <a href="http://www.ioioland.com/st-louis-blues-camo-hat-hata">st louis blues camo hat</a> <a href="http://www.sesliesenyurt.com/nike-air-max-shoes-for-ladies-2015-runninge">nike air max shoes for ladies 2015</a> <a href="http://www.wethinkjerky.com/nike-kobe-8-elite-svart-gull-jewelry-schuhea">nike kobe 8 elite svart gull jewelry</a> <a href="http://www.dadees.com/new-blance-620-b%C3%B8rn-lyser%C3%B8d-guld-scarpec">new blance 620 b酶rn lyser酶d guld</a> <a href="http://www.pickwickcrc.com/nike-air-max-2019-green-uk-shoeso">nike air max 2019 green uk</a>
intoloo http://www.intoloo.com/
hangrysquad
 hangrysquad 约 18 小时前回复
#66
<a href="http://www.perlai.com/curry-one-sko-for-salg-xenia-chaussuresa">curry one sko for salg xenia</a> <a href="http://www.robotultra.com/jordan-6-rings-naranja-and-negro-for-venta-butya">jordan 6 rings naranja and negro for venta</a> <a href="http://www.sphygmic.com/air-jordan-retro-1-r%C3%B8d-dark-bl%C3%A5-obuvc">air jordan retro 1 r酶d dark bl氓</a> <a href="http://www.swellvelo.com/air-jordan-11-noir-or-scarpea">air jordan 11 noir or</a> <a href="http://www.angguvenlik.com/nike-air-max-2016-junior-vente-list-scarpef">nike air max 2016 junior vente list</a> <a href="http://www.boigemenskap.com/mujeres-nike-air-max-thea-blanco-verde-obuvc">mujeres nike air max thea blanco verde</a>
hangrysquad http://www.hangrysquad.com/
brittonoilco
 brittonoilco 2019-02-14 02:58回复
#65
<a href="http://www.cardiachits.com/lebron-zoom-soldier-9-hvid-skoi">lebron zoom soldier 9 hvid</a> <a href="http://www.zestchannel.com/adidas-neo-honeycomb-gr%C3%B8nn-svart-obuvq">adidas neo honeycomb gr酶nn svart</a> <a href="http://www.eczacinim.com/nike-air-force-1-mid-white-velvet-brown-shoesh">nike air force 1 mid white velvet brown</a> <a href="http://www.chilangorails.com/nike-kobe-venomaschioon-court-viola-scarpei">nike kobe venomaschioon court viola</a> <a href="http://www.mariusen.com/herren-nike-kyrie-1-grau-schuhej">herren nike kyrie 1 grau</a> <a href="http://www.brittonoilco.com/san-jose-earthquakes-knit-hath">san jose earthquakes knit</a>
brittonoilco http://www.brittonoilco.com/
yicailottery
 yicailottery 2019-02-12 08:42回复
#64
<a href="http://www.acforlessllc.com/jordan-1-blue-red-white-black-zapatost">jordan 1 blue red white black</a> <a href="http://www.thehodostore.com/converse-femme-all-star-blanche-shoesz">converse femme all star blanche</a> <a href="http://www.gandoff.com/nike-air-max-essential-pro-gr%C3%BCn-schuheb">nike air max essential pro gr眉n</a> <a href="http://www.langbenlang.com/chicago-white-sox-1976-jersey-nflu">chicago white sox 1976 jersey</a> <a href="http://www.glennloovens.com/adidas-ace-17.1-primeknit-review-skou">adidas ace 17.1 primeknit review</a> <a href="http://www.kamilotomotiv.com/jordan-11-low-white-orange-runningf">jordan 11 low white orange</a>
yicailottery http://www.yicailottery.com/
bringribben
 bringribben 2019-02-10 22:26回复
#63
<a href="http://www.albainmaz.com/detroit-lions-jason-hanson-jersey-nflv">detroit lions jason hanson jersey</a> <a href="http://www.seemyvcard.com/nike-zoom-pegasus-33-dam%C3%A4nner-lila-skof">nike zoom pegasus 33 dam盲nner lila</a> <a href="http://www.joegauntlett.com/womens-nike-air-max-87-sb-grey-red-skob">womens nike air max 87 sb grey red</a> <a href="http://www.rpnailsalon.com/kansas-city-royals-fitted-hat-list-items-hata">kansas city royals fitted hat list items</a> <a href="http://www.hrubinlaser.com/nike-free-5.0-tr-fit-4-for-running-runningf">nike free 5.0 tr fit 4 for running</a> <a href="http://www.pruvitallday.com/air-jordan-11-infrarouge-rouge-schuhea">air jordan 11 infrarouge rouge</a>
bringribben http://www.bringribben.com/
feyzplastik
 feyzplastik 2019-02-10 17:38回复
#62
<a href="http://www.clumsford.com/air-jordan-retro-11-b%C3%B8rn-orange-guld-kurpesf">air jordan retro 11 b酶rn orange guld</a> <a href="http://www.mjchronicles.com/nike-sportswear-roshe-run-kvinners-svart-ice-bl%C3%A5-schuheg">nike sportswear roshe run kvinners svart ice bl氓</a> <a href="http://www.moviezluv.com/nike-air-max-90-hyperfuse-qs-herren-schuhe-grau-gr%C3%BCn-schuhec">nike air max 90 hyperfuse qs herren schuhe grau gr眉n</a> <a href="http://www.oregoncuisine.com/adidas-stan-smith-blanco-and-rose-oro-chaussurese">adidas stan smith blanco and rose oro</a> <a href="http://www.perokokbijak.com/nike-huarache-ultra-wolf-grigio-trailer-butyg">nike huarache ultra wolf grigio trailer</a> <a href="http://www.primehostinc.com/herren-nike-internationalist-grau-blau-scarpea">herren nike internationalist grau blau</a>
feyzplastik http://www.feyzplastik.com/
harveenandraj
 harveenandraj 2019-02-10 10:11回复
#61
<a href="http://www.claudefremont.com/mens-brandon-graham-limited-gray-nike-jersey-nfl-philadelphia-eagles-55-gridiron-nflx">mens brandon graham limited gray nike jersey nfl philadelphia eagles 55 gridiron</a> <a href="http://www.jlredcross.com/nike-flyknit-lunar-1-svart-r%C3%B8d-hvit-chaussuresa">nike flyknit lunar 1 svart r酶d hvit</a> <a href="http://www.maracamp.com/nike-air-max-90-kpu-gul-gr%C3%B8n-butya">nike air max 90 kpu gul gr酶n</a> <a href="http://www.neveudigital.com/air-jordan-retro-11-kvinners-mint-gr%C3%B8nn-gr%C3%B8nn-butyc">air jordan retro 11 kvinners mint gr酶nn gr酶nn</a> <a href="http://www.obervall.com/nike-air-max-90-verkauf-sports-direct-obuvg">nike air max 90 verkauf sports direct</a> <a href="http://www.twiggyallure.com/nike-free-tr-blu-cielo-blu-kurpesa">nike free tr blu cielo blu</a>
harveenandraj http://www.harveenandraj.com/
praiseti
 praiseti 2019-02-10 03:42回复
#60
<a href="http://www.helpforaspen.com/air-jordan-9-low-lila-gr%C3%BCn-scarped">air jordan 9 low lila gr眉n</a> <a href="http://www.mcmartial.com/jordan-retro-6-light-azul-kurpesd">jordan retro 6 light azul</a> <a href="http://www.puurderleven.com/ray-ban-clubmaster-polarised-uk-zip-code-sunglassesc">ray ban clubmaster polarised uk zip code</a> <a href="http://www.ipartybooths.com/astros-35-justin-verlander-orange-flexbase-authentic-collection-2017-world-series-champions-stitched-mlb-jersey-nflr">astros 35 justin verlander orange flexbase authentic collection 2017 world series champions stitched mlb jersey</a> <a href="http://www.senegalreview.com/nike-free-og-mens-gold-blue-skoa">nike free og mens gold blue</a> <a href="http://www.poshandpearls.com/nike-air-max-95-red-grey-infrared-sneakere">nike air max 95 red grey infrared</a>
praiseti http://www.praiseti.com/
cossidae
 cossidae 2019-02-09 07:37回复
#59
<a href="http://www.myjungleherbs.com/a-buon-mercato-nike-zoom-winflo-3-maschio-trainersf">a buon mercato nike zoom winflo 3 maschio</a> <a href="http://www.sevenkarma.com/prada-crocodile-belt-pradar">prada crocodile belt</a> <a href="http://www.intdag.com/harga-nike-hypervenom-phatal-fg-runningb">harga nike hypervenom phatal fg</a> <a href="http://www.bodhiboxers.com/light-pink-mk-wallet-mkr">light pink mk wallet</a> <a href="http://www.thespacovers.com/nike-lunar-tempo-kvinders-s%C3%B8lv-sneakere">nike lunar tempo kvinders s酶lv</a> <a href="http://www.trumpchokes.com/kansas-city-chiefs-91-tamba-hali-white-pro-line-fashion-game-jersey-nfle">kansas city chiefs 91 tamba hali white pro line fashion game jersey</a>
cossidae http://www.cossidae.com/
heslaatours
 heslaatours 2019-02-08 16:20回复
#58
<a href="http://www.ictbel.com/asics-gel-kayano-21-negro-verde-scarpec">asics gel kayano 21 negro verde</a> <a href="http://www.ioioland.com/nike-flyknit-lunar-2-gr%C3%B8nn-ingr%C3%B8dients-kurpesc">nike flyknit lunar 2 gr酶nn ingr酶dients</a> <a href="http://www.sesliesenyurt.com/discount-oakley-mens-square-wire-sunglasses-sunglassesg">discount oakley mens square wire sunglasses</a> <a href="http://www.wethinkjerky.com/youth-nike-new-york-giants-44-doug-kotar-limited-olivecamo-2017-salute-to-service-nfl-jersey-nflr">youth nike new york giants 44 doug kotar limited olivecamo 2017 salute to service nfl jersey</a> <a href="http://www.dadees.com/air-jordan-13-retro-white-team-red-flint-grey-black-skoa">air jordan 13 retro white team red flint grey black</a> <a href="http://www.pickwickcrc.com/barato-nike-blazer-low-hombres-negro-sneakerf">barato nike blazer low hombres negro</a>
[url=http://www.heslaatours.com/]heslaatours[/url]
顶部留言底部
 00:00/00:00
我想和你虚度时光 - 花房姑娘(9)
  1. 我想和你虚度时光
  2. 花房姑娘
  3. 恋恋风尘
  4. 我喜爱一切不彻底的事物
  5. 我的心里是满的
  6. Long Way
  7. 给少年的歌
  8. 晴日共剪窗
  9. 天上的月你的脸