Heim Backend-Entwicklung PHP-Tutorial Praxis der YII2-Datenbankabfrage

Praxis der YII2-Datenbankabfrage

Aug 04, 2016 am 09:20 AM
mysql php yii2

Dieser Artikel stellt hauptsächlich relevante Informationen zur YII2-Datenbankabfragepraxis vor. Freunde, die sie benötigen, können sich auf

Eine vorläufige Untersuchung des YII2-Frameworks, Ergänzungen, Löschungen und Änderungen beziehen , verwandte Abfragen usw. Einfaches Üben grundlegender Datenbankoperationen.

Datenbankkonfiguration.

/config/db.php Konfigurieren Sie die Datenbank

Während der Übung gibt es eine Testbibliothek – „Testtabelle –“ zwei Datensätze sind wie folgt

mysql> aus dem Test ;
---- -------
| 🎜> |. 2 |
---- --------
18 Zeilen im Satz (0,00 Sek.)


SQL-Abfragemethode

yii2 stellt die Originaldatenbank bereit Die Abfragemethode ist findBySql. Gleichzeitig wird die grundlegende SQL-Injection-Abwehr automatisch über Platzhalter durchgeführt. Obiger Code

// Die grundlegendste Abfragemethode

$sql = "select * from test where 1";

$res = Test::findBySql($sql)->all() ;

var_dump(count($res)); // res->2
// findbysql verhindert SQL-Injection
$id = '1 or 1=1';
$sql = "select * from test where id = " $id;
$res = Test : :findBySql($sql)->all();
var_dump(count($res)); // res->$sql = "select * from test where id = :id" ;
// Der Locator verhindert automatisch die SQL-Injektion
$res = Test::findBySql($sql,array(":id"=>$id))->all();
var_dump (count($res)); // res->1


activeRecord-Abfragemethode

Jedes Framework stellt zusätzlich zur ursprünglichen SQL-Methode eine entsprechende Kapselung bereit. Die Abfragemethode ist das gleiche wie yii2.

Modell erstellen

Die grundlegende Methode des Yii-Modells ist wie folgt. Der Code wird unten nicht im Detail beschrieben.

namespace appmodels;

use Yii;

use yiidbActiveRecord;

class Test erweitert ActiveRecord
{
// Optional, entsprechende Tabelle: If Der Standardklassenname stimmt mit dem Tabellennamen überein. Diese Funktion wird nicht benötigt.
public static function tableName()
{
return 'test';
}
// Optional, Validator: hauptsächlich verwendet Überprüfen Sie jedes Feld
public function Rules(){
return [
['id', 'integer'],
['name', 'string', 'length' => 0, 100]],
];
}
}


Sie müssen das Modell einführen, wenn Sie es verwenden

verwenden Sie appmodelsTest;

Vorgang hinzufügen

// Operation hinzufügen

$test = new Test();

$test->name = 'test';
// Gültigkeitsüberprüfung
$test->validate() ;
if($test->hasErrors()){
echo „Die Daten sind illegal“;
die;
}
$test->save();


Abfragevorgang

Abfragevorgang gehen Sie zuerst zum offiziellen Dokument

ActiveRecord-Dokument

wo Dokument

Es sollte betont werden : yii query bietet viele umfangreiche Bibliotheken, z. B. Batch-Abfrageverarbeitung im Code usw. Weitere Informationen finden Sie in der Dokumentation.

// select

// id = 1

$res = Test::find()->where(['id' => 1])->all() ;

var_dump(count($res)); //1

// id > 0
$res = Test::find()->where(['>','id ',0])->all();
var_dump(count($res)); //2
// id > =1 id <=2
$res = Test: :find()->where(['between','id',1,2])->all();
var_dump(count($res)); //2
// Namensfeld wie
$res = Test::find()->where(['like', 'name', 'cuihuan'])->all();
var_dump(count($res )); //2
// Abfrageverwendung obj->array
$res = Test::find()->where(['between','id',1,2]) - >asArray()->all();
var_dump($res[0]['id']); //2
// Batch-Abfrage, Batch-Abfrage für große Speicheroperationen
foreach (Test::find()->batch(1) as $test) {
var_dump(count($test));
}


Löschvorgang

// löschen

// Auswählen und löschen

$res = Test::find()->where(['id'=>1])->all();

$res[0] ->delete();

//Direkt löschen
var_dump(Test::deleteAll('id>:id', array(':id' => 2)));


Änderungsvorgänge

Zusätzlich zur Codemethode stellt yii2 direkt Aktualisierungsvorgänge bereit.

// Änderung des Aktivitätsdatensatzes

$res = Test::find()->where(['id'=>4])->one();

$res ->name = "update";

$res->save();



Verwandte Abfrageoperation

Zwei Tabellen im zugehörigen Abfragebeispiel:

Eine Schülertabelle (Student): ID, Name;

Eine Punktetabelle (Punktzahl): ID, stu_id, Punktezahl

// Alle Punkte der entsprechenden Schüler

$ stu = Student::find()->where(['name'=>'xiaozhuai'])->one();

var_dump($stu->id);

// Basic Get

$scores_1 = $stu->hasMany('appmodelScore',['stu_id'=>$stu->id])->asArray()->all();
$ scores_2 = $stu->hasMany(Score::className(),['stu_id'=>'id'])->asArray()->all();
var_dump($scores_1) ;
var_dump($scores_2);


Bei der Ausführung verwandter Operationen im Controller ist der Code zu verwirrend, sodass der Aufruf im Modell gekapselt ist.

Kapseln Sie zunächst die relevanten Assoziationsaufruffunktionen im Student-Modell

namespace appmodels;
verwenden Sie Yii;
verwenden Sie yiidbActiveRecord;
class Student erweitert ActiveRecord
{
public static function tableName()
{
return 'student';
}
// Punkteinformationen abrufen
public function getScores()
{
$scores = $this->hasMany(Score::className(), ['stu_id' => 'id'])->asArray()->all();
return $scores; }
}

, zwei Aufrufmethoden

// Aufruf nach Funktionskapselung

$scores = $stu->getScores() ;
var_dump($scores);
//Verwenden Sie die automatische Aufrufmethode von __get
$scores = $stu->scores;
var_dump($scores);

Abschließend

Das Obige sind einige grundlegende Vorgänge wie Hinzufügen, Löschen, Ändern, Abfragen und zugehörige Abfragen während der Bereitstellung und Verwendung von yii2.

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)

MySQL: Einfache Konzepte für einfaches Lernen MySQL: Einfache Konzepte für einfaches Lernen Apr 10, 2025 am 09:29 AM

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

So erstellen Sie Navicat Premium So erstellen Sie Navicat Premium Apr 09, 2025 am 07:09 AM

Erstellen Sie eine Datenbank mit Navicat Premium: Stellen Sie eine Verbindung zum Datenbankserver her und geben Sie die Verbindungsparameter ein. Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Datenbank erstellen. Geben Sie den Namen der neuen Datenbank und den angegebenen Zeichensatz und die angegebene Kollektion ein. Stellen Sie eine Verbindung zur neuen Datenbank her und erstellen Sie die Tabelle im Objektbrowser. Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie Daten einfügen, um die Daten einzufügen.

Die Zukunft von PHP: Anpassungen und Innovationen Die Zukunft von PHP: Anpassungen und Innovationen Apr 11, 2025 am 12:01 AM

Die Zukunft von PHP wird erreicht, indem sich an neue Technologietrends angepasst und innovative Funktionen eingeführt werden: 1) Anpassung an Cloud Computing, Containerisierung und Microservice -Architekturen, Unterstützung von Docker und Kubernetes; 2) Einführung von JIT -Compilern und Aufzählungsarten zur Verbesserung der Leistung und der Datenverarbeitungseffizienz; 3) die Leistung kontinuierlich optimieren und Best Practices fördern.

PHP vs. Python: Verständnis der Unterschiede PHP vs. Python: Verständnis der Unterschiede Apr 11, 2025 am 12:15 AM

PHP und Python haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1.PHP eignet sich für die Webentwicklung mit einfacher Syntax und hoher Ausführungseffizienz. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit präziser Syntax und reichhaltigen Bibliotheken.

So erstellen Sie eine neue Verbindung zu MySQL in Navicat So erstellen Sie eine neue Verbindung zu MySQL in Navicat Apr 09, 2025 am 07:21 AM

Sie können eine neue MySQL -Verbindung in Navicat erstellen, indem Sie den Schritten folgen: Öffnen Sie die Anwendung und wählen Sie eine neue Verbindung (Strg N). Wählen Sie "MySQL" als Verbindungstyp. Geben Sie die Hostname/IP -Adresse, den Port, den Benutzernamen und das Passwort ein. (Optional) Konfigurieren Sie erweiterte Optionen. Speichern Sie die Verbindung und geben Sie den Verbindungsnamen ein.

MySQL und SQL: Wesentliche Fähigkeiten für Entwickler MySQL und SQL: Wesentliche Fähigkeiten für Entwickler Apr 10, 2025 am 09:30 AM

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

PHP: Stirbt es oder passt es sich einfach an? PHP: Stirbt es oder passt es sich einfach an? Apr 11, 2025 am 12:13 AM

PHP stirbt nicht, sondern sich ständig anpasst und weiterentwickelt. 1) PHP hat seit 1994 mehreren Versionen für die Version unterzogen, um sich an neue Technologietrends anzupassen. 2) Es wird derzeit in E-Commerce, Content-Management-Systemen und anderen Bereichen häufig verwendet. 3) PHP8 führt den JIT -Compiler und andere Funktionen ein, um die Leistung und Modernisierung zu verbessern. 4) Verwenden Sie Opcache und befolgen Sie die PSR-12-Standards, um die Leistung und die Codequalität zu optimieren.

So wiederherstellen Sie Daten nach dem Löschen von SQL Zeilen So wiederherstellen Sie Daten nach dem Löschen von SQL Zeilen Apr 09, 2025 pm 12:21 PM

Das Wiederherstellen von gelöschten Zeilen direkt aus der Datenbank ist normalerweise unmöglich, es sei denn, es gibt einen Backup- oder Transaktions -Rollback -Mechanismus. Schlüsselpunkt: Transaktionsrollback: Führen Sie einen Rollback aus, bevor die Transaktion Daten wiederherstellt. Sicherung: Regelmäßige Sicherung der Datenbank kann verwendet werden, um Daten schnell wiederherzustellen. Datenbank-Snapshot: Sie können eine schreibgeschützte Kopie der Datenbank erstellen und die Daten wiederherstellen, nachdem die Daten versehentlich gelöscht wurden. Verwenden Sie eine Löschanweisung mit Vorsicht: Überprüfen Sie die Bedingungen sorgfältig, um das Verhandlich von Daten zu vermeiden. Verwenden Sie die WHERE -Klausel: Geben Sie die zu löschenden Daten explizit an. Verwenden Sie die Testumgebung: Testen Sie, bevor Sie einen Löschvorgang ausführen.

See all articles