Heim  >  Artikel  >  PHP-Framework  >  Detaillierte Erläuterung der Abfrageanweisungen in thinkphp

Detaillierte Erläuterung der Abfrageanweisungen in thinkphp

PHPz
PHPzOriginal
2023-04-21 10:10:24779Durchsuche

ThinkPHP ist ein Open-Source-Webanwendungsframework auf PHP-Basis. Es bietet viele Tools und Lösungen für die komfortable Entwicklung, einschließlich der Erstellung und Ausführung von Abfrageanweisungen. In diesem Artikel wird die Abfrageanweisungsfunktion in ThinkPHP vorgestellt, einschließlich Abfrage-Builder und Datenmodell, um Entwicklern dabei zu helfen, Datenbankoperationen effizienter durchzuführen.

1. Query Builder

Der Query Builder von ThinkPHP ist eine Reihe objektorientierter SQL-Anweisungs-Builder zum schnellen Erstellen komplexer SQL-Anweisungen. Im Abfrage-Builder können Sie mithilfe verschiedener Methoden SQL-Anweisungen der Typen SELECT, UPDATE, INSERT und DELETE erstellen.

  1. SELECT-Abfrageanweisung

Verwenden Sie die SELECT-Abfrageanweisung, um Daten in der Datenbank abzurufen. Sie können die Methode select() des Abfrage-Builders verwenden, um eine SELECT-Abfrageanweisung zu erstellen:

// 查询所有用户数据
Db::name('user')->select();

// 查询 id 为 1 的用户数据
Db::name('user')->where('id', 1)->find();

// 查询年龄大于 18 岁的用户数据
Db::name('user')->where('age', '>', 18)->select();

Im obigen Code stellt Db::name('user') die abzufragende Datentabelle dar. Die Methode select() gibt die Abfrage aller Daten an; die Methode find() gibt die Abfrage eines einzelnen Datensatzes an.

  1. UPDATE-Abfrageanweisung

Verwenden Sie die UPDATE-Abfrageanweisung, um Daten in der Datenbank zu aktualisieren. Sie können die update()-Methode des Abfrage-Builders verwenden, um eine UPDATE-Abfrageanweisung zu erstellen:

// 更新 id 为 1 的用户数据
Db::name('user')->where('id', 1)->update(['name' => 'Tom']);

// 将所有用户的角色都更新为 2
Db::name('user')->update(['role_id' => 2]);

In der update()-Methode stellt der erste Parameter den Zustand des zu aktualisierenden Datensatzes dar und der zweite Parameter sind die aktualisierten Daten Inhalt.

  1. INSERT-Abfrageanweisung

Verwenden Sie die INSERT-Abfrageanweisung, um neue Daten in die Datenbank einzufügen. Sie können die Methode insert() des Abfrage-Builders verwenden, um eine INSERT-Abfrageanweisung zu erstellen:

// 向 user 表中插入一条新数据
Db::name('user')->insert(['name' => 'Jack', 'age' => 20, 'role_id' => 1]);

In der Methode insert() ist der Parameter der neue Dateninhalt, der eingefügt werden soll.

  1. DELETE-Abfrageanweisung

Verwenden Sie die DELETE-Abfrageanweisung, um Daten in der Datenbank zu löschen. Sie können die Methode delete() des Abfrage-Builders verwenden, um eine DELETE-Abfrageanweisung zu erstellen:

// 删除 id 为 1 的数据
Db::name('user')->where('id', 1)->delete();

// 删除所有角色为 3 的用户数据
Db::name('user')->where('role_id', 3)->delete();

In der Methode delete() ist der Parameter die Bedingung des zu löschenden Datensatzes.

2. Datenmodell

Zusätzlich zum Abfrage-Builder bietet ThinkPHP auch eine Reihe von Datenbankbetriebsmethoden basierend auf dem Datenmodell, die die Datentabelle einer Klasse zuordnen und die Datenbank automatisch entsprechend Änderungen in den Klassenattributen verarbeiten können . Protokolliertes CRUD.

  1. Definieren Sie das Datenmodell

Sie können eine Datenmodellklasse mit dem folgenden Code definieren:

namespace app\common\model;

use think\Model;

class User extends Model
{
    // 数据表名
    protected $table = 'user';

    // 自动写入时间戳
    protected $autoWriteTimestamp = true;

    // 模型关联:用户角色
    public function role()
    {
        return $this->belongsTo(Role::class, 'role_id');
    }
}

Im obigen Beispiel haben wir eine Benutzerdatenmodellklasse definiert, indem wir die thinkModel-Klasse geerbt haben. Das Attribut $table gibt den Namen der Datentabelle an, die zugeordnet werden soll, und das Attribut $autoWriteTimestamp gibt an, ob Zeitstempel automatisch geschrieben werden sollen.

  1. Daten abfragen

Wir können die Methoden find(), select(), where() und andere Methoden des Datenmodells verwenden, um die Datenbank abzufragen:

// 查询 id 为 1 的用户数据
$user = User::find(1);

// 查询用户表中所有数据
$users = User::select();

// 查询年龄大于 18 岁的用户数据
$users = User::where('age', '>', 18)->select();

Im obigen Beispiel haben wir die statische Methode von verwendet Datenmodellklasse zum Durchführen einer Datenbankabfrage.

  1. Daten aktualisieren und einfügen

Wir können die Methode save() des Datenmodells verwenden, um Daten zu aktualisieren und einzufügen:

// 更新 id 为 1 的用户数据
$user = User::find(1);
$user->name = 'Tom';
$user->save();

// 向 user 表中插入一条新数据
$user = new User;
$user->name = 'Jack';
$user->age = 20;
$user->role_id = 1;
$user->save();

Im obigen Beispiel verwenden wir die Eigenschaften des Datenmodellobjekts, um die Daten festzulegen aktualisiert oder eingefügt werden, und rufen Sie dann die Methode save() auf, um sie an die Datenbank zu senden.

  1. Daten löschen

Wir können die delete()-Methode des Datenmodells verwenden, um Daten zu löschen:

// 删除 id 为 1 的用户数据
$user = User::find(1);
$user->delete();

// 删除所有角色为 3 的用户数据
User::where('role_id', 3)->delete();

Im obigen Beispiel haben wir die delete()-Methode des Datenmodellobjekts verwendet, um den angegebenen Datensatz zu löschen. oder wir können verwenden static Verwenden Sie die Methode where() der Methode, um den zu löschenden Datensatz auszuwählen, und rufen Sie dann die Methode delete() auf, um ihn zu löschen.

Zusammenfassung

Im Folgenden erfahren Sie, wie Sie mit ThinkPHP Abfrageanweisungen erstellen, z. B. SELECT, UPDATE, INSERT und DELETE. Das Datenmodell bietet einen objektorientierten Ansatz. Manipulieren Sie die Datenbank. Unabhängig davon, ob wir den Abfrage-Builder oder das Datenmodell verwenden, können wir schnell komplexe SQL-Abfrageanweisungen erstellen, um Entwicklern die Durchführung von Datenbankoperationen zu erleichtern.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Abfrageanweisungen in thinkphp. 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