ホームページ  >  記事  >  PHPフレームワーク  >  thinkphp のクエリ コードについて話しましょう

thinkphp のクエリ コードについて話しましょう

PHPz
PHPzオリジナル
2023-04-07 09:31:00479ブラウズ

ThinkPHP は、MVC 開発モデルに基づいた優れた PHP フレームワークで、開発プロセス中に ORM やテンプレート エンジンなどの優れたテクノロジを使用し、開発効率とコード品質を大幅に向上させます。開発プロセスでは、データベース内のレコードをクエリする必要がよくありますが、この記事では ThinkPHP のクエリ コードを紹介します。

  1. 単一レコードのクエリ

単一レコードのクエリはよく使用されるコードであり、find() メソッドを使用して実装できます。 find() メソッドは、直接操作できるモデル オブジェクトを返します。

たとえば、ユーザー テーブルの ID 1 のレコードをクエリしたい場合、コードは次のとおりです:

$user = UserModel::where('id', 1)->find();

このうち、UserModel がユーザー モデルです。定義したクラス、 where('id', 1)クエリ条件を指定します。find() は 1 つのレコードのみをクエリすることを意味します。

  1. 複数のレコードのクエリ

複数のレコードのクエリも非常に便利で、select() メソッドを使用してこれを実現できます。 select() メソッドはデータ セット オブジェクトを返します。これは直接操作することもできます。

たとえば、user テーブル内のすべてのレコードをクエリしたい場合、コードは次のとおりです:

$users = UserModel::select();

その中で、UserModel は、実行するユーザー モデル クラスです。クエリ条件を指定しない場合、デフォルトでは、すべてのレコードがクエリされます。

クエリ条件を指定することもできます。たとえば、ID が 1 より大きいすべてのレコードをクエリする:

$users = UserModel::where('id', '>', 1)->select();

さらに、クエリなど、チェーンでクエリ メソッドを呼び出すこともできます。ユーザー テーブル内の 1 より大きい ID を持つすべてのレコード ステータス 1 を持つ 1 つのレコード:

$users = UserModel::where('id', '>', 1)->where('status', 1)->select();
  1. クエリ指定フィールド

特定のフィールドの値のみが必要な場合がありますクエリを実行する場合は、 field() メソッドを使用してクエリ フィールドを指定します。

たとえば、ユーザー テーブル内のすべてのユーザーの ID フィールドと名前フィールドをクエリするだけで済みます。コードは次のとおりです:

$users = UserModel::field('id,name')->select();
  1. ページング クエリ

データ量が多い場合、ページの読み込み速度とユーザー エクスペリエンスを向上させるために、クエリ結果をページ分割する必要があります。 ThinkPHP は、便利で使いやすい easySwoole/easySwoole/ページネーション コンポーネントを提供します。

たとえば、user テーブル内のすべてのユーザーのデータをクエリし、ページングに easySwoole/easySwoole/pagination を使用する必要があります。コードは次のとおりです:

use think\facade\Db;
use easySwoole\pagination\Paginator;

// 设置每页显示的记录数
$perPage = 10;

// 获取总记录数
$total = Db::name('user')->count();

// 创建分页器对象
$paginator = new Paginator($total, $perPage);

// 获取分页数据
$users = Db::name('user')
    ->limit($paginator->getLimit())
    ->page($paginator->getCurrentPage())
    ->select();

その中には、limit() および page() メソッドは、クエリ範囲を制限し、指定されたページのデータをクエリするために使用されます。 ) メソッドは、現在のポケットベルのステータス情報を取得するために使用されます。 集計クエリ

  1. クエリを実行する場合、平均、最大値、最小値などのクエリ結果を集計する必要がある場合があります。 ThinkPHP では、集約関数を使用してこれを実現できます。
たとえば、user テーブル内のすべてのユーザーの平均年齢をクエリします:

use think\facade\Db;

$avgAge = Db::name('user')->avg('age'); // 返回结果是一个浮点数
また、集計関数を使用して、年齢フィールドの最大値のクエリなどの条件付きクエリを実行することもできます。

use think\facade\Db;

$maxAge = Db::name('user')->where('status', 1)->max('age'); // 返回结果是一个整数
上記は ThinkPHP でよく使われるクエリコードです。

以上がthinkphp のクエリ コードについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。