Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie thinkphp, um native SQL-Anweisungen auszuführen

So implementieren Sie thinkphp, um native SQL-Anweisungen auszuführen

黄舟
黄舟Original
2017-10-26 09:29:471660Durchsuche

Wie führe ich native SQL-Anweisungen in thinkphp aus?


$Model = new Model();//或者 $Model = D(); 或者 $Model = M();
$sql = "select * from `order`";
$voList = $Model->query($sql);

Es sind nur neue erforderlich, um die Methoden in Model von einem leeren Modell zu erben.

HinweisAbfrage ist die Abfragefunktion, Ausführung ist die Funktion zum Hinzufügen, Löschen und Ändern

Instanzen zum Abfragen und Lesen von Attributwerten:


$sql = "select * from goods";
$Model = M();
$result = $Model->query($sql);
foreach ($result as $k=>$val){
$goods_id = $val["goods_id"];
}

Das Modell von tP kann native SQL-Operationen unterstützen und bietet zwei Methoden: Abfrage und Ausführung. Warum unterscheidet natives SQL zwischen zwei Methoden:

1. Verschiedene Rückgabetypen

Abfrage wird zum Abfragen von verwendet und gibt den Datensatz zurück, der mit select oder identisch ist findall, damit es das Volist-Tag direkt in der Vorlage verwenden kann, um die Abfrageergebnisse der Abfrage auszugeben

execute wird für Schreibvorgänge verwendet , gibt den Status oder die Anzahl von zurück Betroffene Datensätze

2. Lese- und Schreibstatistiken sind erforderlich

Um Statistiken über die aktuelle Anzahl der Lese- und Schreibvorgänge von Daten zu ermöglichen, werden die Lese- und Schreibstatistiken ermittelt Operationen der Datenbank sind getrennt (entsprechend Abfrage und Ausführung)

Die Verwendung von nativem SQL ist sehr einfach, wir müssen nicht einmal Modelle instanziieren, zum Beispiel:


$Model = new Model(); // 实例化一个空模型

Die folgenden Methoden sind äquivalent


$Model = D();// 或者 $Model = M();
// 下面执行原生SQL操作
$Model->query('select * from think_user where status=1');
$Model->execute('update think_user set status=1 where id=1');

Wenn Sie ein Modell instanziieren, können Sie beispielsweise weiterhin native SQL-Operationen ausführen, ohne dass dies beeinträchtigt wird :


$User = D('User');
$User->query('select * from think_user where status=1');
$User->execute('update think_user set status=1 where id=1');

In diesem Fall können wir das Schreiben von SQL-Anweisungen vereinfachen, zum Beispiel:


$User->query('select * from __TABLE__ where status=1');
$User->execute('update __TABLE__ set status=1 where id=1');

Das System ersetzt automatisch __TABLE__ durch den aktuellen Namen der Datentabelle, die dem Modell entspricht. Die tatsächliche Datentabelle wird vom Modell bestimmt.

Im Allgemeinen wir verwenden native SQL-Operationen, um einige Operationen zu implementieren, die mit ORM und CURD schwer zu implementieren sind Darüber hinaus Wenn das SQL nicht komplex ist, ist die Effizienz und Kohärenz von nativem SQL Der Unterschied in der Betriebseffizienz ist minimal und die ORM-Implementierung von TP selbst ist ebenfalls recht effizient.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie thinkphp, um native SQL-Anweisungen auszuführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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