Home PHP Framework Laravel Detailed explanation of query statements in thinkphp

Detailed explanation of query statements in thinkphp

Apr 21, 2023 am 10:10 AM

ThinkPHP is an open source PHP-based Web application framework that provides many tools and solutions for convenient development, including the construction and execution of query statements. This article will introduce the query statement function in ThinkPHP, including query builder and data model, to help developers perform database operations more efficiently.

1. Query Builder

ThinkPHP’s query builder is a set of object-oriented SQL statement builders that are used to quickly build complex SQL statements. In the query builder, you can build SQL statements of types SELECT, UPDATE, INSERT, and DELETE using several methods.

  1. SELECT query statement

Use the SELECT query statement to obtain data in the database. You can use the select() method of the query builder to build a SELECT query statement:

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

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

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

In the above code, Db::name('user') represents the data table to be queried. The select() method indicates querying all data; the find() method indicates querying a single record.

  1. UPDATE query statement

Use the UPDATE query statement to update data in the database. You can use the update() method of the query builder to build an UPDATE query statement:

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

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

In the update() method, the first parameter represents the condition of the record to be updated, and the second parameter is the updated data. content.

  1. INSERT query statement

Use the INSERT query statement to insert new data into the database. You can use the insert() method of the query builder to build an INSERT query statement:

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

In the insert() method, the parameter is the new data content to be inserted.

  1. DELETE query statement

Use the DELETE query statement to delete data in the database. You can use the delete() method of the query builder to build a DELETE query statement:

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

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

In the delete() method, the parameter is the condition of the record to be deleted.

2. Data Model

In addition to the query builder, ThinkPHP also provides a set of database operation methods based on the data model, which can map the data table into a class, and can Automatically handle CRUD of database records based on changes in class attributes.

  1. Define the data model

You can use the following code to define a data model class:

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');
    }
}
Copy after login

In the above example, we inherit think\Model class defines a user data model class. The $table attribute indicates the name of the data table to be mapped, and the $autoWriteTimestamp attribute indicates whether to automatically write timestamps.

  1. Query data

We can use the find(), select(), where() and other methods of the data model to query the database:

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

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

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

In the above example, we used the static methods of the data model class to perform database queries.

  1. Update and insert data

We can use the save() method of the data model to update and insert data:

// 更新 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();
Copy after login

In the above example , we use the properties of the data model object to set the data to be updated or inserted, and then call the save() method to submit it to the database.

  1. Delete data

We can use the delete() method of the data model to delete data:

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

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

In the above example, we used The delete() method of the data model object deletes the specified record. You can also use the where() method of the static method to select the record to be deleted, and then call the delete() method to delete it.

Summary

The above is how to use ThinkPHP to build query statements. The query builder provides a variety of methods to build SQL statements such as SELECT, UPDATE, INSERT and DELETE, and data models. It provides an object-oriented way to operate the database. Whether using the query builder or data model, we can quickly build complex SQL query statements to facilitate developers to perform database operations.

The above is the detailed content of Detailed explanation of query statements in thinkphp. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Laravel Introduction Example Laravel Introduction Example Apr 18, 2025 pm 12:45 PM

Laravel is a PHP framework for easy building of web applications. It provides a range of powerful features including: Installation: Install the Laravel CLI globally with Composer and create applications in the project directory. Routing: Define the relationship between the URL and the handler in routes/web.php. View: Create a view in resources/views to render the application's interface. Database Integration: Provides out-of-the-box integration with databases such as MySQL and uses migration to create and modify tables. Model and Controller: The model represents the database entity and the controller processes HTTP requests.

Which is better, Django or Laravel? Which is better, Django or Laravel? Mar 28, 2025 am 10:41 AM

Both Django and Laravel are full-stack frameworks. Django is suitable for Python developers and complex business logic, while Laravel is suitable for PHP developers and elegant syntax. 1.Django is based on Python and follows the "battery-complete" philosophy, suitable for rapid development and high concurrency. 2.Laravel is based on PHP, emphasizing the developer experience, and is suitable for small to medium-sized projects.

Laravel and the Backend: Powering Web Application Logic Laravel and the Backend: Powering Web Application Logic Apr 11, 2025 am 11:29 AM

How does Laravel play a role in backend logic? It simplifies and enhances backend development through routing systems, EloquentORM, authentication and authorization, event and listeners, and performance optimization. 1. The routing system allows the definition of URL structure and request processing logic. 2.EloquentORM simplifies database interaction. 3. The authentication and authorization system is convenient for user management. 4. The event and listener implement loosely coupled code structure. 5. Performance optimization improves application efficiency through caching and queueing.

Laravel user login function Laravel user login function Apr 18, 2025 pm 12:48 PM

Laravel provides a comprehensive Auth framework for implementing user login functions, including: Defining user models (Eloquent model), creating login forms (Blade template engine), writing login controllers (inheriting Auth\LoginController), verifying login requests (Auth::attempt) Redirecting after login is successful (redirect) considering security factors: hash passwords, anti-CSRF protection, rate limiting and security headers. In addition, the Auth framework also provides functions such as resetting passwords, registering and verifying emails. For details, please refer to the Laravel documentation: https://laravel.com/doc

Laravel6 actual combat video Laravel6 actual combat video Apr 18, 2025 pm 12:36 PM

To learn Laravel 6, you can get video tutorials from Laracasts (recommended), official documentation and YouTube. Recommended courses include Laracasts’ “Laravel 6 From Beginner to Mastery” and “Official Laravel 6 Tutorial” produced by the official team. When choosing a video course, consider skill level, teaching style, project experience and frequency of updates.

Laravel framework installation method Laravel framework installation method Apr 18, 2025 pm 12:54 PM

Article summary: This article provides detailed step-by-step instructions to guide readers on how to easily install the Laravel framework. Laravel is a powerful PHP framework that speeds up the development process of web applications. This tutorial covers the installation process from system requirements to configuring databases and setting up routing. By following these steps, readers can quickly and efficiently lay a solid foundation for their Laravel project.

How to learn Laravel How to learn Laravel for free How to learn Laravel How to learn Laravel for free Apr 18, 2025 pm 12:51 PM

Want to learn the Laravel framework, but suffer from no resources or economic pressure? This article provides you with free learning of Laravel, teaching you how to use resources such as online platforms, documents and community forums to lay a solid foundation for your PHP development journey from getting started to master.

The difference between laravel and thinkphp The difference between laravel and thinkphp Apr 18, 2025 pm 01:09 PM

Laravel and ThinkPHP are both popular PHP frameworks and have their own advantages and disadvantages in development. This article will compare the two in depth, highlighting their architecture, features, and performance differences to help developers make informed choices based on their specific project needs.

See all articles