ThinkPHP は、MVC 開発モデルに基づいた優れた PHP フレームワークで、開発プロセス中に ORM やテンプレート エンジンなどの優れたテクノロジを使用し、開発効率とコード品質を大幅に向上させます。開発プロセスでは、データベース内のレコードをクエリする必要がよくありますが、この記事では ThinkPHP のクエリ コードを紹介します。
単一レコードのクエリはよく使用されるコードであり、find() メソッドを使用して実装できます。 find() メソッドは、直接操作できるモデル オブジェクトを返します。
たとえば、ユーザー テーブルの ID 1 のレコードをクエリしたい場合、コードは次のとおりです:
$user = UserModel::where('id', 1)->find();
このうち、UserModel
がユーザー モデルです。定義したクラス、 where('id', 1)
クエリ条件を指定します。find()
は 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();
特定のフィールドの値のみが必要な場合がありますクエリを実行する場合は、 field() メソッドを使用してクエリ フィールドを指定します。
たとえば、ユーザー テーブル内のすべてのユーザーの ID フィールドと名前フィールドをクエリするだけで済みます。コードは次のとおりです:
$users = UserModel::field('id,name')->select();
データ量が多い場合、ページの読み込み速度とユーザー エクスペリエンスを向上させるために、クエリ結果をページ分割する必要があります。 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()
メソッドは、クエリ範囲を制限し、指定されたページのデータをクエリするために使用されます。 ) メソッドは、現在のポケットベルのステータス情報を取得するために使用されます。
集計クエリ
use think\facade\Db; $avgAge = Db::name('user')->avg('age'); // 返回结果是一个浮点数
use think\facade\Db; $maxAge = Db::name('user')->where('status', 1)->max('age'); // 返回结果是一个整数
以上がthinkphp のクエリ コードについて話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。