Heim php教程 php手册 Eine einfache ORM-Klasse

Eine einfache ORM-Klasse

Dec 01, 2016 am 12:00 AM

Ich habe selbst eine einfache ORM-Klasse geschrieben, um interessierten Freunden einige Ideen zu geben.
Ich habe selbst eine einfache ORM-Klasse geschrieben, um interessierten Freunden einige Ideen zu geben. Ich habe mir ein wenig von TPs Ideen ausgeliehen. <?php<br /> /**<br /> * Autor: NickBai<br /> *createTime: 28.11.2016 0028 16:00 Uhr<br /> ​*/<br /> Klasse MyOrm implementiert ArrayAccess<br /> {<br /> Public $host = '127.0.0.1'; //Datenbankadresse<br /> Public $dbname = 'test'; //Datenbankname<br /> Public $user = 'root'; //Datenbankbenutzername<br /> ​​public $pwd = 'root'; //Datenbankpasswort<br /> Public $port = '3306'; //Datenbankport<br /> ​​public $charset = 'utf8'; //Datenbankkodierung<br />       private $conn = null;      // Datenbank-Link-Ressourcen <br /> Private $alias = []; //Globale Anweisungsparameter aufzeichnen<br />        private $sql;      // Letztes SQL speichern<br /> <br /> Öffentliche Funktion __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 = neues PDO( $dsn, $this->user, $this->pwd);<br>         }<br> }<br> <br> //Feldanweisung<br> Öffentliches Funktionsfeld ($field)<br> {<br> Wenn(                                                                                                                                                                             THrow new Exception („Die Parameter der Feldanweisung müssen Zeichenfolgen sein“);<br>         }<br> <br>          $this->alias['field'] = $field;<br>          return $this;<br> }<br> <br> //Tabellenanweisung<br> Öffentliche Funktionstabelle ($table)<br> {<br> Wenn(                                                                                                                                                                                                                                        ‐‐‐‐         }<br> <br>           $this->alias['table'] = $table;<br>          return $this;<br> }<br> <br> //where-Anweisung<br> Öffentliche Funktion where( $where )<br> {<br>          $this->alias['where'] = '';<br> Wenn( <br> foreach( $where as $key=>$vo ){<br>                 $this->alias['where'] .= " `$key`" ' und ';<br>             }<br>                $this->alias['where'] = rtrim( $this->alias['where'], 'and ' );<br> <br>         }else if(  is_string(  $where  ) ){<br> <br>                $this->alias['where'] = $where;<br>           }sonst{<br> <br>                                                                                                                                                                                  Throw new Exception("Die Parameter der where-Anweisung müssen Arrays oder Strings sein");<br>         }<br> <br>          return $this;<br> }<br> <br> //Limit-Anweisung<br> Öffentliches Funktionslimit($limit)<br> {<br>          $this->alias['limit'] = '';<br> Wenn(               $this->alias['limit'] = '0,' $limit;<br>         }else if(  is_string(  $limit  ) ){<br>                $this->alias['limit'] = $limit;<br>           }sonst{<br> throw newException("Die Parameter der Limit-Anweisung müssen Zahlen oder Zeichenfolgen sein");<br>         }<br> <br>          return $this;<br> }<br> <br> //Bestellerklärung<br> Öffentliche Funktionsreihenfolge ($order)<br> {<br> If (! Is_string ($ Order)) {<br>                                                                                                                                                                                                                                   }<br> <br>           $this->alias['order'] = $order;<br>          return $this;<br> }<br> <br> //Gruppenanweisung<br> Öffentliche Funktionsgruppe ($group)<br> {<br> If (! Is_string ($ Group)) {<br>                                                                                                                                                                                                                          ‐‐‐         }<br> <br>           $this->alias['group'] = $group;<br>          return $this;<br> }<br> <br> //Abfrage-SQL-Anweisung analysieren<br> Öffentliche Funktion 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- & gt; alias ['table'])) {<br> Neue Ausnahme auslegen ("Bitte verwenden Sie die Tischklausel, um die Abfrage Tabelle festzulegen"; <br>           }sonst{<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 .= ' sortieren nach ' . $this->alias['order'];<br>         }<br> <br>         if( !empty( $this->alias['limit'] ) ){<br>             $this->sql .= ' limit ' . $this->alias['limit'];<br>         }<br> <br>     }<br> <br>     //解析添加sql语句<br>     öffentliche Funktion ParseAddSql()<br>     {<br>         $this->sql = 'insert into ';<br>         if( empty( $this->alias['table'] ) ){<br>             throw new Exception("请用table子句设置添加表");<br>         }else{<br> <br>             $this->sql .= $this->alias['table'] . ' set ';<br>         }<br> <br>         gib $this->sql;<br> zurück     }<br> <br>     //解析更新sql语句<br>     öffentliche Funktion ParseUpdateSql()<br>     {<br>         $this->sql = 'update ';<br>         if( empty( $this->alias['table'] ) ){<br>             throw new Exception("请用table子句设置修改表");<br>         }else{<br> <br>             $this->sql .= $this->alias['table'] . ' set ';<br>         }<br> <br>         if( empty( $this->alias['where'] ) ){<br>             throw new Exception("更新语句必须有where子句指定条件");<br>         }<br> <br>         gib $this->sql;<br> zurück     }<br> <br>     //解析删除sql语句<br>     öffentliche Funktion ParseDeleteSql()<br>     {<br>         $this->sql = 'delete from ';<br>         if( empty( $this->alias['table'] ) ){<br>             throw new Exception("请用table子句设置删除表");<br>         }else{<br> <br>             $this->sql .= $this->alias['table'];<br>         }<br> <br>         if( empty( $this->alias['where'] ) ){<br>             throw new Exception("删除语句必须有where子句指定条件");<br>         }<br> <br>         $this->sql .= ' where ' . $this->alias['where'];<br> <br>         gib $this->sql;<br> zurück     }<br> <br> <br>     //查询语句<br>     öffentliche Funktion 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; //Das aktuelle Objekt klonen, um eine Kontamination dieses Objekts zu verhindern<br>                $arrObj->data = $vo;<br>               $result[$key] = $arrObj;<br> ​​​​​​unset($arrObj);<br>        }<br> <br>          return $result;<br> }<br> <br> //Einen Artikel abfragen<br> Öffentliche Funktion find()<br> {<br>           $this->ParseSelectSql();<br> $row = $this->conn->query( $this->sql )->fetch( PDO::FETCH_ASSOC );<br> <br>         $arrObj = clone $this; //Das aktuelle Objekt klonen, um eine Kontamination dieses Objekts zu verhindern<br>          $arrObj->data = $row;<br>         $result = $arrObj;<br> ​​​​unset($arrObj);<br> <br>          return $result;<br> }<br> <br> //Daten hinzufügen<br> Öffentliche Funktion add( $data )<br> {<br> Wenn( neue Ausnahme auslösen("Daten hinzufügen, Methodenparameter hinzufügen müssen Arrays sein");<br>        }<br> <br>           $this->ParseAddSql();<br> foreach( $data as $key=>$vo ){<br> $this->sql .= " `{$key}` = '" $vo        }<br> <br>           $this->conn->exec( rtrim( $this->sql, ',' ));<br>           return $this->conn->lastInsertId();<br> }<br> <br> //Anweisung aktualisieren<br> Öffentliche Funktionsaktualisierung ($data)<br> {<br> Wenn( ​​​​​​wirft eine neue Ausnahme aus („Parameter der Update-Datenaktualisierungsmethode müssen Arrays sein“);<br>        }<br> <br>           $this->ParseUpdateSql();<br> foreach( $data as $key=>$vo ){<br> $this->sql .= " `{$key}` = '" $vo        }<br> <br>           $this->sql = rtrim( $this->sql, ',' ) ' $this->alias['where'];<br>           return $this->conn->exec( $this->sql);<br> <br> }<br> <br> //Anweisung löschen<br> Öffentliche Funktion delete()<br> {<br>           $this->ParseDeleteSql();<br>           return $this->conn->exec( $this->sql);<br>    }<br> <br>     //获取查询数据<br>     öffentliche Funktion getData()<br>     {<br>         gib $this->data;<br> zurück     }<br> <br>     //获取最后一次执行的sql语句<br>     öffentliche Funktion getLastSql()<br>     {<br>         gib $this->sql;<br> zurück     }<br> <br>     öffentliche Funktion __get($name)<br>     {<br>         return $this->getData()[$name];<br>     }<br> <br>     öffentliche Funktion offsetExists($offset)<br>     {<br>         if( !isset( $this->getData()[$offset] ) ){<br>             return NULL;<br>         }<br>     }<br> <br>     öffentliche Funktion offsetGet($offset)<br>     {<br>         return $this->getData()[$offset];<br>     }<br> <br>     öffentliche Funktion offsetSet($offset, $value)<br>     {<br>         return $this->data[$offset] = $value;<br>     }<br> <br>     öffentliche Funktion offsetUnset($offset)<br>     {<br>         unset( $this->data[$offset] );<br>     }<br> }你可以这么用:$orm = new MyOrm();<code class="prettyprint linenums lang-php">$orm = new MyOrm();<br> <br> //查询语句<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')->limit(2)->select();<br> $res = $orm->table('user')->where("age > 20")->group('group by name')->order('id desc')->limit('2,2')->select();<br> <br> //你可以这样处理数据<br> foreach( $res as $key=>$vo ){<br>     echo $vo->name . '<br/>';<br> }<br> //也可以这样处理<br> foreach( $res as $key=>$vo ){<br>     echo $vo['name'] . '<br/>';<br> }<br> //还可以这样<br> foreach( $res as $key=>$vo ){<br>     print_r( $vo->getData() ) . '<br/>';<br> }<br> <br> //添加数据<br> $data = [<br>     'name' => 'test1',<br>     'age' => 20,<br>     'password' => '21232f297a57a5a743894a0e4a801fc3',<br>     'salt' => 'domain'<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> //获取执行的sql语句<br> echo $orm->getLastSql();<br> <br> var_dump($res);

//查询语句 $res = $orm->table('user')->where("name='test'")->order('id desc')->select();

$res = $orm->table('user')->where(['id' => 1])->order('id desc')->find();

$res = $orm->table('user')->where("age > 20")->group('group by name')->order('id desc')-> limit(2)->select(); $res = $orm->table('user')->where("age > 20")->group('group by name')->order('id desc')-> limit('2,2')->select(); //你可以这样处理数据 foreach( $res as $key=>$vo ){     echo $vo->name . '
'; } //也可以这样处理 foreach( $res as $key=>$vo ){     echo $vo['name'] . '
'; } //还可以这样 foreach( $res as $key=>$vo ){     print_r( $vo->getData() ) . '
'; } //添加数据 $data = [     'name' => 'test1',     'Alter' => 20,     'Passwort' => '21232f297a57a5a743894a0e4a801fc3',     'Salz' => 'Domäne' ]; $res = $orm->table('user')->add( $data ); //更新数据 $res = $orm->table('user')->where(['id' => 4])->update( ['name' => 'sdfdsfdsd', 'salt' => ;  '111'] ); //删除数据 $res = $orm->table('user')->where(['id' => 7, 'id' => 6])->delete(); //获取执行的sql语句 echo $orm->getLastSql(); var_dump($res);
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Digitale Audio-Ausgangsschnittstelle auf dem Motherboard-SPDIF OUT Digitale Audio-Ausgangsschnittstelle auf dem Motherboard-SPDIF OUT Jan 14, 2024 pm 04:42 PM

Reihenfolge der SPDIFOUT-Verbindungsleitungen auf dem Motherboard. Ich bin kürzlich auf ein Problem bezüglich der Verdrahtungsreihenfolge der Drähte gestoßen. Ich habe online nachgesehen, dass 1, 2 und 4 Ausgang, +5 V und Masse entsprechen, während andere Informationen besagen, dass 1, 2 und 4 Ausgang, Masse und +5 V entsprechen. Am besten schauen Sie im Handbuch Ihres Motherboards nach. Wenn Sie das Handbuch nicht finden, können Sie es mit einem Multimeter messen. Suchen Sie zuerst nach der Erdung, dann können Sie die Reihenfolge der restlichen Verkabelung bestimmen. So schließen Sie die VDG-Verkabelung des Motherboards an. Wenn Sie die VDG-Verkabelung des Motherboards anschließen, müssen Sie ein Ende des VGA-Kabels an die VGA-Schnittstelle des Monitors und das andere Ende an die VGA-Schnittstelle der Grafikkarte des Computers anschließen. Bitte achten Sie darauf, es nicht an den VGA-Anschluss des Motherboards anzuschließen. Sobald die Verbindung hergestellt ist, können Sie es tun

Wie installiere und registriere ich die BTC Trading App? Wie installiere und registriere ich die BTC Trading App? Feb 21, 2025 pm 07:09 PM

Dieser Artikel enthält eine detaillierte Einführung in die Installation und Registrierung einer Bitcoin -Handelsanwendung. Mit der Bitcoin Trading App können Benutzer Kryptowährungen wie Bitcoin verwalten und handeln. Der Artikel führt die Benutzer Schritt für Schritt durch den Installations- und Registrierungsprozess, einschließlich Herunterladen von Anwendungen, Erstellen von Konten, Durchführung der Identitätsprüfung und der ersten Einzahlung. Ziel des Artikels ist es, Anfängern klare und leicht verständliche Richtlinien zu geben, um ihnen zu helfen, die Welt des Bitcoin-Handels leicht zu betreten.

Ouyi Exchange Download Official Portal Ouyi Exchange Download Official Portal Feb 21, 2025 pm 07:51 PM

Ouyi, auch bekannt als OKX, ist eine weltweit führende Kryptowährungsplattform. Der Artikel enthält ein Download -Portal für das offizielle Installationspaket von Ouyi, mit dem Benutzer den Ouyi -Client auf verschiedenen Geräten installiert werden können. Dieses Installationspaket unterstützt Windows, Mac, Android und iOS -Systeme. Nach Abschluss der Installation können sich Benutzer registrieren oder sich beim Ouyi -Konto anmelden, Kryptowährungen mit dem Handel mit den von der Plattform erbrachten Diensten anmelden.

Top 10 Global Digital Currency Trading Apps empfohlen (2025 Ranking für Währungssoftware) Top 10 Global Digital Currency Trading Apps empfohlen (2025 Ranking für Währungssoftware) Mar 12, 2025 pm 05:48 PM

In diesem Artikel werden die zehn Top -Apps der digitalen Währung der Welt der Welt empfohlen, darunter Binance, OKX, Huobi Global, Coinbase, Kraken, Gate.io, Kucoin, Bitfinex, Gemini und Bitstamp. Diese Plattformen haben ihre eigenen Eigenschaften in Bezug auf Transaktionspaarmenge, Transaktionsgeschwindigkeit, Sicherheit, Einhaltung, Benutzererfahrung usw. Binance ist beispielsweise für seine hohe Transaktionsgeschwindigkeit und umfangreiche Dienste bekannt, während Coinbase besser für Anfänger geeignet ist. Durch die Auswahl einer Plattform, die Sie entspricht, müssen Sie Ihre eigenen Bedürfnisse und die Risikotoleranz umfassend berücksichtigen. Erfahren Sie mehr über die weltweit Mainstream -Handelsplattformen für digitale Währung, damit Sie sicher und effizient digitaler Handel mit dem Handel mit digitalem Handel durchführen können.

Welche Handelssoftware für digitale Währung ist die beste? Welche Handelssoftware für digitale Währung ist die beste? Mar 07, 2025 pm 06:45 PM

Es gibt keine einzelne "beste" -D -App für digitale Währung, und die Wahl hängt von den persönlichen Bedürfnissen ab. 1. OKX hat leistungsstarke Funktionen und reichhaltige Währungstypen. Bei der Auswahl müssen Sie Sicherheit, Liquidität, Handhabungsgebühren, Funktionen, Benutzererfahrung und andere Faktoren berücksichtigen.

Welches sind die drei führenden virtuellen Währungs -Apps? Welches sind die drei führenden virtuellen Währungs -Apps? Mar 04, 2025 pm 08:51 PM

Der Markt für virtuelle Währungen boomt und viele Handelsplattformen werden geboren. In diesem Artikel werden die drei führenden Anwendungen im Bereich Virtual Currency eingeführt, das für ihre hervorragende Benutzererfahrung, leistungsstarke Sicherheit und umfangreiche Funktionen bekannt ist. Zu diesen Anwendungen gehören Binance, Gate.io und Ouyi, die den Anlegern bequeme und sichere Möglichkeiten zum Kauf, Verkauf, Handeln und Verfolgen virtueller Währungen bieten.

Top 10 Top -Plattformen für virtuelle digitale Währung 2025 Rankings, Top Ten Virtual Currency App Börsen Top 10 Top -Plattformen für virtuelle digitale Währung 2025 Rankings, Top Ten Virtual Currency App Börsen Feb 21, 2025 pm 09:03 PM

In diesem Artikel werden 10 Mainstream -Kryptowährungsbörsen eingeführt, in denen grundlegende Informationen wie ihre Einrichtung, Dienstleistungsumfang, Sicherheit, Liquidität, Transaktionsgebühren usw. abdeckt werden. Zu diesen Börsen gehören: OKX, Binance, Gate.io, Bitget, Coinbase, Huobi, Kucoin, Crypto.com, Gemini und Kraken.

Handelsplattform für digitale Währung 2025 Handelsplattform für digitale Währung 2025 Mar 04, 2025 pm 07:06 PM

Basierend auf globalen Informationen erstellt dieser Artikel die Ranglisten der weltweit führenden virtuellen Digitalwährungsplattformen wie Binance, OKX, Gate.io, Huobi, Coinbase, Kraken, Crypto.com, Bitget, Kucoin und Bitstamp. Diese Plattformen haben ihre eigenen Merkmale in Bezug auf die Anzahl der Benutzer, Transaktionsvolumen, Transaktionstypen, Sicherheit, Compliance usw. Die Auswahl einer geeigneten Handelsplattform erfordert Waagefaktoren wie Sicherheit, Gebühren und Handelsprodukte basierend auf Ihren eigenen Bedürfnissen.

See all articles