首頁 > php框架 > Laravel > 詳解thinkphp中的查詢語句

詳解thinkphp中的查詢語句

PHPz
發布: 2023-04-21 10:57:48
原創
794 人瀏覽過

ThinkPHP 是一款開源的基於PHP的Web應用框架,它提供了許多方便開發的工具和解決方案,包括查詢語句的建構和執行。本文將介紹 ThinkPHP 中的查詢語句功能,包括查詢建構器和資料模型,幫助開發者更有效地進行資料庫操作。

一、查詢建構器

ThinkPHP 的查詢建構器是一套物件導向的 SQL 語句建構器,用於快速建立複雜 SQL 語句。在查詢建構器中,可以透過使用多種方法來建構 SELECT、UPDATE、INSERT 和 DELETE 等類型的 SQL 語句。

  1. SELECT 查詢語句

使用 SELECT 查詢語句可以取得資料庫中的資料。可以使用查詢建構器的 select() 方法來建構 SELECT 查詢語句:

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

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

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

在上面的程式碼中,Db::name('user') 表示要查詢的資料表。 select() 方法表示查詢所有資料;find() 方法表示查詢單一記錄。

  1. UPDATE 查詢語句

使用 UPDATE 查詢語句可以更新資料庫中的資料。可以使用查詢建構器的update() 方法來建構UPDATE 查詢語句:

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

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

在update() 方法中,第一個參數表示要更新的記錄的條件,第二個參數為更新的數據內容。

  1. INSERT 查詢語句

使用 INSERT 查詢語句可以向資料庫中插入新資料。可以使用查詢建構器的 insert() 方法來建構 INSERT 查詢語句:

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

在 insert() 方法中,參數為要插入的新資料內容。

  1. DELETE 查詢語句

使用 DELETE 查詢語句可以刪除資料庫中的資料。可以使用查詢建構器的 delete() 方法來建構 DELETE 查詢語句:

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

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

在 delete() 方法中,參數為要刪除的記錄的條件。

二、資料模型

除了查詢建構器之外,ThinkPHP 還提供了一套基於資料模型的資料庫操作方式,該方式可以將資料表映射成為一個類,並且可以根據類別屬性的變化自動處理資料庫記錄的CRUD。

  1. 定義資料模型

可以使用以下程式碼定義一個資料模型類別:

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');
    }
}
登入後複製

在上面的範例中,我們透過繼承think\Model類別來定義了一個使用者資料模型類別。其中 $table 屬性表示要對應的資料表名,$autoWriteTimestamp 屬性表示是否自動寫入時間戳記。

  1. 查詢資料

我們可以使用資料模型的find()、select()、where() 等方法來查詢資料庫:

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

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

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

在上面的範例中,我們使用了資料模型類別的靜態方法來進行資料庫查詢。

  1. 更新並插入資料

我們可以使用資料模型的save() 方法來更新和插入資料:

// 更新 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();
登入後複製

在上面的範例中,我們使用資料模型物件的屬性來設定要更新或插入的數據,然後呼叫save() 方法提交到資料庫中。

  1. 刪除資料

我們可以使用資料模型的delete() 方法來刪除資料:

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

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

在上面的範例中,我們使用了資料模型物件的delete() 方法刪除指定記錄,也可以使用靜態方法的where() 方法來選擇要刪除的記錄,然後呼叫delete() 方法刪除。

總結

以上就是使用ThinkPHP 進行查詢語句建構的方法,其中查詢建構器提供了多種方法來建構SELECT、UPDATE、INSERT 和DELETE 等類型的SQL 語句,資料模型則提供了物件導向的方式來操作資料庫。無論是使用查詢建構器或資料模型,我們都可以快速地建構出複雜的 SQL 查詢語句,方便開發者進行資料庫操作。

以上是詳解thinkphp中的查詢語句的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板