亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁(yè) php教程 php手冊(cè) 一個(gè)簡(jiǎn)易的ORM類

一個(gè)簡(jiǎn)易的ORM類

Dec 01, 2016 am 12:00 AM

自己寫的一個(gè)簡(jiǎn)易的ORM類,給有興趣的朋友一點(diǎn)思路。
自己寫的一個(gè)簡(jiǎn)易的ORM類,給有興趣的朋友一點(diǎn)思路。借鑒了一點(diǎn)TP的思路。 <?php <br /> /**<br> ?*?author:?NickBai<br> ?*?createTime:?2016/11/28?0028?下午?4:00<br> ?*/<br> class?MyOrm?implements?ArrayAccess<br> {<br> ????public?$host?=?'127.0.0.1';??//資料庫(kù)位址<br> ????public?$dbname?=?'test';???//資料庫(kù)名稱<br> ????public?$user?=?'root';??//資料庫(kù)使用者名稱<br> ????public?$pwd?=?'root';???//資料庫(kù)密碼<br> ????public?$port?=?'3306';??//資料庫(kù)連接埠<br> ????public?$charset?=?'utf8';???//資料庫(kù)編碼<br> ????private?$conn?=?null;????//資料庫(kù)連結(jié)資源<br> ????private?$alias?=?[];??//記錄全域的語(yǔ)句參數(shù)<br> ????private?$sql;????//儲(chǔ)存最後一條sql<br> <br> ????public?function?__construct()<br> ????{<br> ????????if(?is_null(?$this->conn?)?){<br> <br> ????????????$dsn?=?"mysql:host=$this->host;dbname=$this->dbname;charset=$this->charset;port=$this->port";<br> ????????????$this->conn?=?new?PDO(?$dsn,?$this->user,?$this->pwd?);<br> ????????}<br> ????}<br> <br> ????//field語(yǔ)句<br> ????public?function?field(?$field?)<br> ????{<br> ????????if(?!is_string(?$field?)?){<br> ????????????throw?new?exception("field語(yǔ)句的參數(shù)必須為字串");<br> ????????}<br> <br> ????????$this->alias['field']?=?$field;<br> ????????return?$this;<br> ????}<br> <br> ????//table語(yǔ)句<br> ????public?function?table(?$table?)<br> ????{<br> ????????if(?!is_string(?$table?)?){<br> ????????????throw?new?exception("table語(yǔ)句的參數(shù)必須為字串");<br> ????????}<br> <br> ????????$this->alias['table']?=?$table;<br> ????????return?$this;<br> ????}<br> <br> ????//where語(yǔ)句<br> ????public?function?where(?$where?)<br> ????{<br> ????????$this->alias['where']?=?'';<br> ????????if(?is_array(?$where?)?){<br> <br> ????????????foreach(?$where?as?$key=>$vo?){<br> ????????????????$this->alias['where']?.=?"?`$key`"?.?'?=?'??$vo? ????????????}<br> ????????????$this->alias['where']?=?rtrim(?$this->alias['where'],?'and?'?);<br> <br> ????????}else?if(?is_string(?$where?)?){<br> <br> ????????????$this->alias['where']?=?$where;<br> ????????}else{<br> <br>????????????throw?new?exception("where語(yǔ)句的參數(shù)必須為陣列或字串");<br> ????????}<br> <br> ????????return?$this;<br> ????}<br> <br> ????//limit語(yǔ)句<br> ????public?function?limit(?$limit?)<br> ????{<br> ????????$this->alias['limit']?=?'';<br> ????????if(?is_numeric(?$limit?)?){<br> ???????????$this->alias['limit']?=?'0,'?.?$limit;<br> ????????}else?if(?is_string(?$limit?)?){<br> ????????????$this->alias['limit']?=?$limit;<br> ????????}else{<br> ????????????throw?new?exception("limit語(yǔ)句的參數(shù)必須為數(shù)位或字串");<br> ????????}<br> <br> ????????return?$this;<br> ????}<br> <br> ????//order語(yǔ)句<br> ????public?function?order(?$order?)<br> ????{<br> ????????if(?!is_string(?$order?)?){<br> ????????????throw?new?exception("order語(yǔ)句的參數(shù)必須為字串");<br> ????????}<br> <br> ????????$this->alias['order']?=?$order;<br> ????????return?$this;<br> ????}<br> <br> ????//group語(yǔ)句<br> ????public?function?group(?$group?)<br> ????{<br> ????????if(?!is_string(?$group?)?){<br> ????????????throw?new?exception("group語(yǔ)句的參數(shù)必須為字串");<br> ????????}<br> <br> ????????$this->alias['group']?=?$group;<br> ????????return?$this;<br> ????}<br> <br> ????//解析查詢sql語(yǔ)句<br> ????public?function?ParseSelectSql()<br> ????{<br> ????????$this->sql?=?'select?*';<br> ????????if(?!empty(?$this->alias['field']?)?){<br> ????????????$this->sql?=?str_replace(?'*',?$this->alias['field'],?$this->sql?);<br> ????????}<br> <br> ????????if(?empty(?$this->alias['table']?)?){<br> ????????????throw?new?exception("請(qǐng)使用table子句設(shè)定查詢表");<br> ????????}else{<br> <br> ????????????$this->sql?.=?'?from?'?.?$this->alias['table'];<br> ????????}<br> <br> ????????if(?!empty(?$this->alias['where']?)?){<br> ????????????$this->sql?.=?'?where?'?.?$this->alias['where'];<br> ????????}<br> <br> ????????if(?!empty(?$this->alias['group']?)?){<br> ????????????$this->sql?.=?'?group?by?'?.?$this->alias['group'];<br>????????}<br> <br> ????????if(!empty($this->alias['order'])?){<br> ????????????$this->sql.='order by'.?$this->alias['order'];<br> ????????}<br> <br> ????????if(!empty($this->alias['limit'])?){<br> ????????????$this->sql.='限制'。?$this->alias['limit'];<br> ????????}<br> <br> ????}<br> <br> ????//解析加入sql語(yǔ)句<br> ????公用函數(shù) ParseAddSql()<br> ????{<br> ????????$this->sql='插入到';<br> ????????if(?空($this->alias['table'])?){<br> ????????????throw?new?Exception("請(qǐng)使用table子句設(shè)定新增表格");<br> ????????}其他{<br> <br> ????????????$this->sql?.=$this->alias['table']?.?'?設(shè)定';<br> ????????}<br> <br> ????????回$this->sql;<br> ????}<br> <br> ????//解析更新sql語(yǔ)句<br> ????公用函數(shù) ParseUpdateSql()<br> ????{<br> ????????$this->sql='更新';<br> ????????if(?空($this->alias['table'])?){<br> ????????????throw?new?Exception("請(qǐng)使用table子句設(shè)定修改表");<br> ????????}其他{<br> <br> ????????????$this->sql?.=$this->alias['table']?.?'?設(shè)定';<br> ????????}<br> <br> ????????if(?空(?$this->alias['where']?)?){<br> ????????????throw new exception("更新語(yǔ)句必須有where子句指定條件");<br> ????????}<br> <br> ????????回$this->sql;<br> ????}<br> <br> ????//解析刪除sql語(yǔ)句<br> ????公用函數(shù) ParseDeleteSql()<br> ????{<br> ????????$this->sql = '刪除自';<br> ????????if(?空($this->alias['table'])?){<br> ????????????throw?new?Exception("請(qǐng)使用table子句設(shè)定刪除表");<br> ????????}其他{<br> <br> ????????????$this->sql?.=?$this->alias['table'];<br> ????????}<br> <br> ????????if(?空(?$this->alias['where']?)?){<br> ????????????throw new exception("刪除語(yǔ)句必須有where子句指定條件");<br> ????????}<br> <br> ????????$this->sql.='其中'.?$this->alias['where'];<br> <br> ????????回$this->sql;<br> ????}<br> <br> <br> ????//查詢語(yǔ)句<br> ????公用函數(shù) select()<br> ????{<br> ????????$this->ParseSelectSql();<br>????????$row?=?$this->conn->query(?$this->sql?)->fetchAll(?PDO::FETCH_ASSOC?);<br> ????????$result?=?[];<br> <br> ????????foreach(?$row?as?$key=>$vo?){<br> <br> ????????????$arrObj?=?clone?$this;??//clone目前對(duì)象防止this物件造成污染<br> ????????????$arrObj->data?=?$vo;<br> ????????????$result[$key]?=?$arrObj;<br> ????????????unset(?$arrObj?);<br> ????????}<br> <br> ????????return?$result;<br> ????}<br> <br> ????//查詢一條<br> ????public?function?find()<br> ????{<br> ????????$this->ParseSelectSql();<br> ????????$row?=?$this->conn->query(?$this->sql?)->fetch(?PDO::FETCH_ASSOC?);<br> <br> ????????$arrObj?=?clone?$this;??//clone目前物件防止對(duì)this物件造成污染<br> ????????$arrObj->data?=?$row;<br> ????????$result?=?$arrObj;<br> ????????unset(?$arrObj?);<br> <br> ????????return?$result;<br> ????}<br> <br> ????//新增資料<br> ????public?function?add(?$data?)<br> ????{<br> ????????if(?!is_array(?$data?)?){<br> ????????????throw?new?exception("新增資料add方法參數(shù)必須為陣列");<br> ????????}<br> <br> ????????$this->ParseAddSql();<br> ????????foreach(?$data?as?$key=>$vo?){<br> ????????????$this->sql?.=?"?`{$key}`?=?'"?.?$vo?.?"',";<br> ????????}<br> <br> ????????$this->conn->exec(?rtrim(?$this->sql,?','?)?);<br> ????????return?$this->conn->lastInsertId();<br> ????}<br> <br> ????//更新語(yǔ)句<br> ????public?function?update(?$data?)<br> ????{<br> ????????if(?!is_array(?$data?)?){<br> ????????????throw?new?exception("更新資料update方法參數(shù)必須為陣列");<br> ????????}<br> <br> ????????$this->ParseUpdateSql();<br> ????????foreach(?$data?as?$key=>$vo?){<br> ????????????$this->sql?.=?"?`{$key}`?=?'"?.?$vo?.?"',";<br> ????????}<br> <br> ????????$this->sql?=?rtrim(?$this->sql,?','?)?.?'?where?'?.?$this->alias['where'];<br> ????????return?$this->conn->exec(?$this->sql?);<br> <br> ????}<br> <br> ????//刪除語(yǔ)句<br> ????public?function?delete()<br> ????{<br> ????????$this->ParseDeleteSql();<br> ????????return?$this->conn->exec(?$this->sql?);<br>????}<br> <br> ????//取得查詢資料<br> ????公用函數(shù) getData()<br> ????{<br> ????????返回 $this->data;<br> ????}<br> <br> ????//取得最後執(zhí)行的sql語(yǔ)句<br> ????公用函數(shù) getLastSql()<br> ????{<br> ????????回$this->sql;<br> ????}<br> <br> ????公用函數(shù)__get($name)<br> ????{<br> ????????返回 $this->getData()[$name];<br> ????}<br> <br> ????公用函數(shù) offsetExists($offset)<br> ????{<br> ????????if(!isset($this->getData()[$offset])?){<br> ????????????則返回 NULL;<br> ????????}<br> ????}<br> <br> ????公用函數(shù) offsetGet($offset)<br> ????{<br> ????????返回 $this->getData()[$offset];<br> ????}<br> <br> ????公用函數(shù) offsetSet($offset, $value)<br> ????{<br> ????????返回 $this->data[$offset] = $value;<br> ????}<br> <br> ????公用函數(shù) offsetUnset($offset)<br> ????{<br> ????????取消設(shè)定($this->data[$offset]);<br> ????}<br> }你可以這樣用:$orm?=?new?MyOrm();<br> <br> //查詢語(yǔ)句<br> $res?=?$orm->table('user')->order('id desc')->select();<br> $res?=?$orm->table('user')->where("name='test'")->order('id?desc')->select();<br> $res?=?$orm->table('user')->where(['id'?=>?1])->order('id?desc')->find();<br> $res = $orm->table('user')->where("age > 20")->group('group by name')->order('id desc')->order('id desc' )->group('group by name')->order('id desc')-> limit(2)->select();<br> $res = $orm->table('user')->where("age > 20")->group('group by name')->order('id desc')->order('id desc' )->group('group by name')->order('id desc')-> limit('2,2')->select();<br> <br> //你可以這樣處理資料<br> foreach($res as $key=>$vo){<br> ????回顯$vo->名稱。?'<br>';<br> }<br> //也可以這樣處理<br> foreach($res as $key=>$vo){<br> ????回顯$vo['name']。?'<br>';<br> }<br> //還可以這樣<br> foreach($res as $key=>$vo){<br> ????print_r($vo->getData()).?'<br>';<br> }<br> <br> //新增資料<br> $數(shù)據(jù) = [<br> ????'姓名' =>?'測(cè)試1',<br> ????'年齡' =>?20、<br> ????'密碼' =>?'21232f297a57a5a743894a0e4a801fc3',<br> ????'鹽' =>?‘網(wǎng)域名稱’<br> ];<br> $res?=?$orm->table('user')->add($data?);<br> <br> //更新資料<br> $res = $orm->table('user')->where(['id'=>4])->update(['name'=>'sdfdsfdsd','salt'=> ;?'111'] );<br> <br> //刪除資料<br> $res?=?$orm->table('user')->where(['id'?=>?7,?'id'?=>?6])->delete();<br> <br> //取得執(zhí)行的sql語(yǔ)句<br> echo $orm->getLastSql();<br> <br> var_dump($res);

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
主機(jī)板上的數(shù)位音訊輸出介面-SPDIF OUT 主機(jī)板上的數(shù)位音訊輸出介面-SPDIF OUT Jan 14, 2024 pm 04:42 PM

主機(jī)板上SPDIFOUT連接線序最近我遇到了一個(gè)問題,就是關(guān)於電線的接線順序。我上網(wǎng)查了一下,有些資料說1、2、4對(duì)應(yīng)的是out、+5V、接地;而有些資料則說1、2、4對(duì)應(yīng)的是out、接地、+5V。最好的方法是查看你的主機(jī)板說明書,如果找不到說明書,你可以使用萬(wàn)用電表進(jìn)行測(cè)量。首先找到接地,然後就可以確定其他的接線順序了。主機(jī)板vdg怎麼接線連接主機(jī)板的VDG接線時(shí),您需要將VGA連接線的一端插入顯示器的VGA接口,另一端插入電腦的顯示卡VGA接口。請(qǐng)注意,不要將其插入主機(jī)板的VGA介面。完成連接後,您可以

全球數(shù)字貨幣交易十大APP推薦(2025貨幣交易軟件排名) 全球數(shù)字貨幣交易十大APP推薦(2025貨幣交易軟件排名) Mar 12, 2025 pm 05:48 PM

本文推薦全球十大數(shù)字貨幣交易APP,涵蓋幣安(Binance)、OKX、火幣(Huobi Global)、Coinbase、Kraken、Gate.io、KuCoin、Bitfinex、Gemini和Bitstamp。這些平臺(tái)在交易對(duì)數(shù)量、交易速度、安全性、合規(guī)性、用戶體驗(yàn)等方面各有特色,例如幣安以其高交易速度和廣泛服務(wù)聞名,而Coinbase則更適合新手用戶。選擇適合自己的平臺(tái)需要綜合考慮自身需求和風(fēng)險(xiǎn)承受能力。 了解全球主流數(shù)字貨幣交易平臺(tái),助您安全高效進(jìn)行數(shù)字資產(chǎn)交易。

全球幣圈十大交易所有哪些 排名前十的貨幣交易平臺(tái)最新版 全球幣圈十大交易所有哪些 排名前十的貨幣交易平臺(tái)最新版 Apr 28, 2025 pm 08:09 PM

全球十大加密貨幣交易平臺(tái)包括Binance、OKX、Gate.io、Coinbase、Kraken、Huobi Global、Bitfinex、Bittrex、KuCoin和Poloniex,均提供多種交易方式和強(qiáng)大的安全措施。

前十名數(shù)字貨幣交易所排名 十大虛擬貨幣交易軟件平臺(tái)最新榜單 前十名數(shù)字貨幣交易所排名 十大虛擬貨幣交易軟件平臺(tái)最新榜單 Apr 22, 2025 pm 01:15 PM

前十名數(shù)字貨幣交易所排名分別是:1. Binance,2. OKX,3. gate.io,4. Coinbase,5. Kraken,6. Bitfinex,7. Huobi,8. KuCoin,9. Bitstamp,10. Gemini,這些平臺(tái)因其高流動(dòng)性、廣泛的交易對(duì)、相對(duì)較低的交易費(fèi)用、多層次的安全措施以及友好的用戶界面而備受推崇。

歐易交易所下載官方入口 歐易交易所下載官方入口 Feb 21, 2025 pm 07:51 PM

歐易,又稱OKX,是一個(gè)全球領(lǐng)先的加密貨幣交易平臺(tái)。文章提供了歐易官方安裝包的下載入口,方便用戶在不同設(shè)備上安裝歐易客戶端。該安裝包支持 Windows、Mac、Android 和 iOS 系統(tǒng),用戶可根據(jù)自己的設(shè)備類型選擇相應(yīng)版本下載。安裝完成後,用戶即可註冊(cè)或登錄歐易賬戶,開始交易加密貨幣和享受平臺(tái)提供的其他服務(wù)。

btc交易app怎麼安裝註冊(cè)? btc交易app怎麼安裝註冊(cè)? Feb 21, 2025 pm 07:09 PM

本篇文章將詳細(xì)介紹如何安裝和註冊(cè)比特幣交易應(yīng)用。比特幣交易應(yīng)用允許用戶管理和交易比特幣等加密貨幣。文章逐步指導(dǎo)用戶完成安裝和註冊(cè)過程,包括下載應(yīng)用程序、創(chuàng)建賬戶、進(jìn)行身份驗(yàn)證和首次存款。文章的目標(biāo)是為初學(xué)者提供清晰易懂的指南,幫助他們輕鬆進(jìn)入比特幣交易的世界。

數(shù)字貨幣app交易軟件哪個(gè)最好用 數(shù)字貨幣交易軟件大盤點(diǎn) 數(shù)字貨幣app交易軟件哪個(gè)最好用 數(shù)字貨幣交易軟件大盤點(diǎn) Mar 07, 2025 pm 06:45 PM

沒有單一“最好用”的數(shù)字貨幣交易App,選擇取決於個(gè)人需求。 1. OKX功能強(qiáng)大,幣種豐富;2. Binance流動(dòng)性高,交易類型多樣;3. Gate.io提供質(zhì)押挖礦等獨(dú)特功能;4. Huobi Global界面友好,多語(yǔ)言支持;5. Kraken注重安全性;6. Coinbase適合新手,注重用戶教育。 選擇時(shí)需考慮安全性、流動(dòng)性、手續(xù)費(fèi)、功能、用戶體驗(yàn)等等因素。

Go語(yǔ)言程式設(shè)計(jì)實(shí)例:Web開發(fā)中的程式碼範(fàn)例 Go語(yǔ)言程式設(shè)計(jì)實(shí)例:Web開發(fā)中的程式碼範(fàn)例 Mar 04, 2024 pm 04:54 PM

《Go語(yǔ)言程式設(shè)計(jì)實(shí)例:Web開發(fā)中的程式碼範(fàn)例》隨著網(wǎng)路的快速發(fā)展,Web開發(fā)已成為各行業(yè)中不可或缺的一部分。作為一門功能強(qiáng)大且效能優(yōu)越的程式語(yǔ)言,Go語(yǔ)言在Web開發(fā)中越來越受到開發(fā)者們的青睞。本文將透過具體的程式碼範(fàn)例,介紹如何利用Go語(yǔ)言進(jìn)行Web開發(fā),讓讀者更能理解並運(yùn)用Go語(yǔ)言來建立自己的Web應(yīng)用。 1.簡(jiǎn)單的HTTP伺服器首先,讓我們從一個(gè)

See all articles