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

清空信息
关闭评论
hardcoreboris
 hardcoreboris 约 10 小时前回复
#171
<a href="http://www.ptsbarwinslow.com/air-jordan-retro-4-blue-jade-grey-shoesh">air jordan retro 4 blue jade grey</a> <a href="http://www.sarhallafk.com/nike-internationalist-cuir-bleu-force-1-chaussuresl">nike internationalist cuir bleu force 1</a> <a href="http://www.philippikus.com/nike-foamposite-pearlized-pink-shoesj">nike foamposite pearlized pink</a> <a href="http://www.pngoilgas.com/los-angeles-dodgers-47-mlb-navy-pink-mvp-cap-hatk">los angeles dodgers 47 mlb navy pink mvp cap</a> <a href="http://www.goficarwash.com/adidas-neo-high-dark-bl%C3%A5-hvid-skoj">adidas neo high dark bl氓 hvid</a> <a href="http://www.getairtijuana.com/men-ralph-lauren-blaire-red-black-yellow-plaid-small-shirt-l-s-ebay-poloh">men ralph lauren blaire red black yellow plaid small shirt l s ebay</a>
hardcoreboris http://www.hardcoreboris.com/
ueaydin
 ueaydin 2019-04-24 21:08回复
#170
<a href="http://www.beautymotive.com/brixton-leonard-hat-hath">brixton leonard hat</a> <a href="http://www.poleblacks.com/nike-air-max-90-hyperfuse-prm-2014-25-anniversary-hombres-deep-azul-zapatosl">nike air max 90 hyperfuse prm 2014 25 anniversary hombres deep azul</a> <a href="http://www.qiefun.com/nike-hyperdunk-2016-black-white-red-shoesk">nike hyperdunk 2016 black white red</a> <a href="http://www.kickums.com/nike-air-huarache-kvinners-bl%C3%A5-obuvi">nike air huarache kvinners bl氓</a> <a href="http://www.rahndfvd.com/nike-kobe-10-bl%C3%A5-hvit-obuvk">nike kobe 10 bl氓 hvit</a> <a href="http://www.followjacker.com/nike-kobe-11-lilla-svart-s%C3%B8lv-kobe-sko-salg-obuvi">nike kobe 11 lilla svart s酶lv kobe sko salg</a>
ueaydin http://www.ueaydin.com/
handydgh
 handydgh 2019-04-23 16:51回复
#169
<a href="http://www.whatoiljobs.com/nike-air-presto-anti-fur-wine-white-shoesj">nike air presto anti fur wine white</a> <a href="http://www.mustberavi.com/illinois-fighting-illini-top-of-the-world-ncaa-light-gray-rails-flex-cap-hatk">illinois fighting illini top of the world ncaa light gray rails flex cap</a> <a href="http://www.dynamixawards.com/kvinder-nike-air-max-90-prem-tape-sn-gr%C3%A5-gr%C3%B8n-skoj">kvinder nike air max 90 prem tape sn gr氓 gr酶n</a> <a href="http://www.nerdalertnews.com/ralph-lauren-striped-shorts-poloh">ralph lauren striped shorts</a> <a href="http://www.dmvantalya.com/nike-blazer-mid-black-suede-shoesi">nike blazer mid black suede</a> <a href="http://www.houshyaree.com/adidas-superstar-2-nero-oro-scarpej">adidas superstar 2 nero oro</a>
handydgh http://www.handydgh.com/
emenucards
 emenucards 2019-04-22 17:48回复
#168
<a href="http://www.rakebackhero.com/nike-zoom-pegasus-33-gelb-rot-scarpeb">nike zoom pegasus 33 gelb rot</a> <a href="http://www.tntkibris.com/nike-super-bowl-lii-mens-stephon-gilmore-elite-red-alternate-jersey-new-england-patriots-nfl-24-vapor-untouchable-nfls">nike super bowl lii mens stephon gilmore elite red alternate jersey new england patriots nfl 24 vapor untouchable</a> <a href="http://www.charitoencasa.com/air-max-2017-plata-wings-scarpeg">air max 2017 plata wings</a> <a href="http://www.duponttesoro.com/nike-air-max-zero-qs-sort-keys-obuvd">nike air max zero qs sort keys</a> <a href="http://www.exetervanhire.com/jordan-13-low-sort-maize-hvid-scarpea">jordan 13 low sort maize hvid</a> <a href="http://www.forbezdynasty.com/dam%C3%A4nner-salomon-s-lab-sense-gr%C3%BCn-schwarz-schuheb">dam盲nner salomon s lab sense gr眉n schwarz</a>
[url=http://www.emenucards.com/]emenucards[/url]
sheftalljewelers
 sheftalljewelers 2019-04-22 12:57回复
#167
<a href="http://www.gtfa.net/air-jordan-retro-5-bleu-violet-schuhee">air jordan retro 5 bleu violet</a> <a href="http://www.guyscakes.net/air-jordan-phase-23-classic-orange-gr%C3%B8n-obuvd">air jordan phase 23 classic orange gr酶n</a> <a href="http://www.hamsun.net/nike-free-5.0-b%C3%B8rn-l%C3%B8b-sko-butyd">nike free 5.0 b酶rn l酶b sko</a> <a href="http://www.hauntmaven.net/air-jordan-6-retro-hvid-midnight-fl%C3%A5den-kopen-obuvc">air jordan 6 retro hvid midnight fl氓den kopen</a> <a href="http://www.haysocial.net/nike-flyknit-trainer-negro-blanco-for-venta-nc-kurpesf">nike flyknit trainer negro blanco for venta nc</a> <a href="http://www.hollywoodfest.net/2016-air-max-for-salg-kurpesa">2016 air max for salg</a>
sheftalljewelers http://www.sheftalljewelers.net/
thebiarritz
 thebiarritz 2019-04-22 08:11回复
#166
<a href="http://www.mandydugan.com/nike-air-max-zero-mujeres-negro-rojo-zapatosk">nike air max zero mujeres negro rojo</a> <a href="http://www.dxnkofe.com/nike-free-run-3-rojo-blanco-zapatosp">nike free run 3 rojo blanco</a> <a href="http://www.yurasmirnov.com/north-face-womens-berkeley-hyvent-jacket-red-northfaceh">north face womens berkeley hyvent jacket red</a> <a href="http://www.blovese.com/air-yeezy-ii-2-sp-max-90-rosa-wei%C3%9F-schuhej">air yeezy ii 2 sp max 90 rosa wei脽</a> <a href="http://www.ztsurfboards.com/nike-free-run-3-kvinders-appelsin-sort-skoh">nike free run 3 kvinders appelsin sort</a> <a href="http://www.visheshcap.com/kobe-nike-noir-jaune-chaussuresh">kobe nike noir jaune</a>
thebiarritz http://www.thebiarritz.com/
cometwifi
 cometwifi 2019-04-22 01:57回复
#165
<a href="http://www.matkailuvarkaus.net/jordan-retro-1-varsity-rosso-scarpee">jordan retro 1 varsity rosso</a> <a href="http://www.medmanage.net/nike-kd-gold-lila-butye">nike kd gold lila</a> <a href="http://www.medsample.net/jordan-hydro-2-hvid-butyf">jordan hydro 2 hvid</a> <a href="http://www.metacommunities.net/kvinders-air-yeezy-ii-2-sp-max-90-gr%C3%A5-guld-schuhea">kvinders air yeezy ii 2 sp max 90 gr氓 guld</a> <a href="http://www.metalinquisition.net/nike-roshe-run-rose-silber-kaufen-chaussuresa">nike roshe run rose silber kaufen</a> <a href="http://www.michigangolfguide.net/jordan-4-rose-obuva">jordan 4 rose</a>
cometwifi http://www.cometwifi.net/
asoseinhalb
 asoseinhalb 2019-04-21 11:25回复
#164
<a href="http://www.reviewtogel.com/749680-610-nike-air-max-invigor-gym-rojo-blanco-zapatosi">749680 610 nike air max invigor gym rojo blanco</a> <a href="http://www.igrejamormon.com/air-jordan-retro-6-dark-r%C3%B8d-skoh">air jordan retro 6 dark r酶d</a> <a href="http://www.skonya.com/nero-on-nero-nike-free-5.0-scarpei">nero on nero nike free 5.0</a> <a href="http://www.monsterplate.com/adidas-zx-flux-in-nero-scarpej">adidas zx flux in nero</a> <a href="http://www.kentimpendik.com/scott-hartnell-nashville-predators-game-used-jersey-nflh">scott hartnell nashville predators game used jersey</a> <a href="http://www.attivopizza.com/coach-market-tote-burgundy-coachh">coach market tote burgundy</a>
asoseinhalb http://www.asoseinhalb.com/
beautymotive
 beautymotive 2019-04-19 21:01回复
#163
<a href="http://www.muebleactual.com/nike-air-max-2015-blanco-verde-zapatosi">nike air max 2015 blanco verde</a> <a href="http://www.xfullfilmizle.com/nike-flyknit-air-max-m%C3%A6nd-sort-orange-gul-skoh">nike flyknit air max m忙nd sort orange gul</a> <a href="http://www.mycryptoverse.com/tutti-nero-canvas-converse-scarpei">tutti nero canvas converse</a> <a href="http://www.blokistand.com/maschio-nike-zoom-pegasus-33-nero-bianca-in-esecuzione-scarpej">maschio nike zoom pegasus 33 nero bianca in esecuzione</a> <a href="http://www.wadeesley.com/mens-2017-nfl-draft-cleveland-browns-85-david-njoku-brown-team-color-stitched-nfl-nike-elite-jersey-nflh">mens 2017 nfl draft cleveland browns 85 david njoku brown team color stitched nfl nike elite jersey</a> <a href="http://www.dermonenc.com/coach-luggage-canada-coachh">coach luggage canada</a>
beautymotive http://www.beautymotive.com/
metabolifes
 metabolifes 2019-04-19 14:04回复
#162
<a href="http://www.seesoshow.com/asics-gel-lyte-iii-gris-light-bleu-noir-chaussuresl">asics gel lyte iii gris light bleu noir</a> <a href="http://www.crypolio.com/nike-air-max-rosa-laufen-schuhe-schuhej">nike air max rosa laufen schuhe</a> <a href="http://www.vtrvideo.com/on-foot-look-nike-cortez-leder-wei%C3%9F-gold-schuhei">on foot look nike cortez leder wei脽 gold</a> <a href="http://www.asoseinhalb.com/all-rosa-converse-high-tops-obuvj">all rosa converse high tops</a> <a href="http://www.handydgh.com/converse-bianca-low-scarpel">converse bianca low</a> <a href="http://www.blakefanz.com/nike-kobe-ad-noir-rouge-chaussuresh">nike kobe ad noir rouge</a>
metabolifes http://www.metabolifes.com/
顶部留言底部
 00:00/00:00
我想和你虚度时光 - 花房姑娘(9)
  1. 我想和你虚度时光
  2. 花房姑娘
  3. 恋恋风尘
  4. 我喜爱一切不彻底的事物
  5. 我的心里是满的
  6. Long Way
  7. 给少年的歌
  8. 晴日共剪窗
  9. 天上的月你的脸