Laravel Framework 03: Die DB-Klasse betreibt die Datenbank

I. Übersicht

  • Gemäß der MVC-Architektur sollten Datenoperationen im Modell abgeschlossen werden. Wenn Sie das Modell jedoch nicht verwenden, können Sie die Datenbank auch mit der DB-Klasse des Laravel-Frameworks betreiben.
  • Bei einigen äußerst komplexen SQL-Anweisungen ist es schwierig, sie mit Model zu vervollständigen. Sie können die DB-Klasse verwenden, um natives SQL auszuführen.
  • Grundlegende Verwendung: DB::table('tableName')Rufen Sie die Instanz der Tabelle „tableName“ ab.

2. Erstellung und Konfiguration von Datentabellen

  • Erstellen Sie Datenbanken und Datentabellen

    CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
    use test;
    create table member(
    	id int PRIMARY KEY auto_increment,
    	name VARCHAR(32) not null,
    	age TINYINT UNSIGNED not null,
    	email VARCHAR(32) not null
    )ENGINE myisam charset utf8;
    
  • Datenbankkonfiguration in Laravel
    Fügen Sie hier eine Bildbeschreibung ein

  • Der strikte Modus ist standardmäßig in config/database aktiviert. Kann während der Entwicklung ausgeschaltet werden.
    Fügen Sie hier eine Bildbeschreibung ein

  • Die DB-Fassade wurde in config/app.php eingeführt
    Fügen Sie hier eine Bildbeschreibung ein

3. Vorgänge hinzufügen, löschen und ändern

1. Informationen hinzufügen

  • Es gibt zwei Hauptfunktionen zum Hinzufügen von Daten zu einer Tabelle in der Datenbank.
    1. insert() kann ein oder mehrere Elemente hinzufügen und der Rückgabewert ist vom Typ Boolean.
    2. insertGetID() kann nur ein Datenelement hinzufügen und die automatisch inkrementierte ID zurückgeben.
  • Fügen Sie ein Datenelement hinzu
public function add() {
    
    
    $db = DB::table("member");
    $result = $db->insert([
        'name' => "冬梅",
        'age' => 18,
        'email' => "[email protected]"
    ]);
    dd($result);
}
  • Fügen Sie mehrere Datenelemente hinzu
public function add() {
    
    
    $db = DB::table("member");
    $result = $db->insert([
        [
            'name' => "冬梅",
            'age' => 18,
            'email' => "[email protected]"
        ],
        [
            'name' => '秋雅',
            'age' => 19,
            'email' => "[email protected]"
        ]
    ]);
    dd($result);
}
  • Fügen Sie einen Datensatz hinzu und rufen Sie die ID ab
public function add() {
    
    
    $db = DB::table("member");
    $result = $db->insertGetId([
        "name" => "夏洛",
        "age" => 20,
        "email" => "[email protected]"
    ]);
    dd($result);
}

2. Daten ändern

  • Datenänderungen können mit update(), increment() und decrement() implementiert werden.

    • update kann alle Felder im gesamten Datensatz ändern und die Anzahl der betroffenen Zeilen zurückgeben.
    • Inkrementieren und Dekrementieren numerische Felder ändern (Inkrementieren oder Dekrementieren)
  • Nutzen Sie where(字段, 运算符, 值)qualifizierte Daten. Wenn der Operator ist =, muss der zweite Parameter nicht geschrieben werden.

    • where()->where()…: Diese Syntax ist eine UND-Beziehung.
    • where()->orWhere()…: Diese Syntax ist eine Oder-Beziehung.
  • Ändern Sie den Namen und das Alter von ID 1

    public function update() {
          
          
        $db = DB::table("member");
        $result = $db->where("id", "=", 1)->update([
            "name" => "张三丰",
            'age' => 200
        ]);
        dd($result);
    }
    
  • Erhöhe das Alter von ID 2 um 10.

    public function update() {
          
          
        $db = DB::table("member");
        # 加10
        $result = $db->where("id", 2)->increment('age', 10);
        # 减10
        $result = $db->where("id", 2)->decrement('age', 10);
        dd($result);
    }
    

3. Daten löschen

  • Beim Löschen gibt es zwei Möglichkeiten: physisches Löschen und logisches Löschen (in Leer ändern).
  • Physische Löschung: DB::table('tableName')->where('id', 1)->delete();. Gibt die Anzahl der betroffenen Zeilen zurück.
  • Löschen Sie die gesamte Tabelle:DB::table('tableName')->truncate();

4. Abfragevorgang

1. Holen Sie sich grundlegende Daten

  • Holen Sie sich alle Daten in der Tabelle: DB::table('member')->get();. Der Rückgabewert ist ein Collection-Objekt.

    public function select() {
          
          
        $db = DB::table("member");
        $result = $db->get();
        dd($result);
    }
    

    Fügen Sie hier eine Bildbeschreibung ein

  • Beim Durchlaufen des Collection-Objekts erhalten Sie ebenfalls ein Objekt.

    public function select() {
          
          
        $db = DB::table("member");
        $result = $db->get();
        foreach ($result as $index => $item) {
          
          
            echo "id是:{
            
            $item->id},名字是:{
            
            $item->name},邮箱是:{
            
            $item->email}<br>";
        }
    }
    

    Fügen Sie hier eine Bildbeschreibung ein

  • Sie können auch where und orWhere verwenden, um den Umfang der Abfrage einzuschränken.

2. Rufen Sie eine einzelne Datenzeile ab

  • Verwenden Sie zuerst, um ein einzeiliges Objekt zu erhalten. Entspricht Limit 1.$db->first();
$data = $db->where('age', ">", 25)->first();
dd($data);

3. Ermitteln Sie den Wert eines Felds

  • Verwenden Sie diese Option value('字段名'), um bestimmte Werte abzurufen.
$data = $db->where('id', 1)->value("name");
dd($data);

4. Rufen Sie die Werte mehrerer Felder ab

  • Verwenden Sie diese Option select('字段名'), um die Werte mehrerer Felder abzurufen.
$data = $db->select('name as 名字', "email")->get();
dd($data);

Fügen Sie hier eine Bildbeschreibung ein

5. Sortieren

  • orderBy()Daten sortieren nach
$data = $db->orderBy('age', 'desc')->get();
dd($data);

6. Paginierung

  • DB::table('member')->limit(3)->offset(2)->get();
    • limit: Begrenzen Sie die Anzahl der Ausgabezeilen
    • Offset: Wo soll ich anfangen?
    • Die Kombination entspricht: Limit 5, 5
  • paginateDie Methode legt automatisch den entsprechenden Offset und Grenzwert basierend auf der aktuellen Seitenzahl fest, die der Benutzer durchsucht hat.DB::table('users')->paginate(15);

5. Führen Sie beliebige SQL-Anweisungen aus

  1. Führen Sie beliebige Änderungen durch:DB::statement("SQL语句");
  2. Beliebige Abfragen ausführen:DB::select("SQL语句");

Guess you like

Origin blog.csdn.net/realoser/article/details/129225624