Eine einfache ORM-Klasse
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);
//查询语句
'; } //也可以这样处理 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);

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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

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, 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.

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.

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.

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.

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.

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.
