ホームページ >PHPフレームワーク >ThinkPHP >thinkphp で mysql フィールドを呼び出す方法の詳細な説明

thinkphp で mysql フィールドを呼び出す方法の詳細な説明

PHPz
PHPzオリジナル
2023-04-11 10:43:53807ブラウズ

ThinkPHP はオープンソースの PHP フレームワークであり、その優れている点はコードの品質だけでなく、さらに重要なのは、使いやすさ、柔軟な構成、強力なデータベース操作機能です。 ThinkPHP では、MySQL フィールドを呼び出す方法は、習得する必要がある重要なスキルです。

1. データベース テーブルとデータの作成

データベース操作を実行する前に、データベースと対応するデータ テーブルを作成する必要があります。学生管理システムがあり、学生に関する基本情報を保存するために Student という名前のデータ テーブルを作成する必要があるとします。テーブルには次のフィールドが含まれます:

id: 主キー、自動インクリメント。

name: 学生の名前、varchar 型、長さ 20。

年齢: 学生の年齢、int 型。

sex: 学生の性別、varchar 型、長さ 2。

t_score: CET-4 テストのスコア、int 型。

total_score: 生徒の合計スコア、int 型。

次の SQL ステートメントを使用してデータ テーブルを作成できます:

CREATE TABLE student (
id int(11) NOT NULL AUTO_INCREMENT COMMENT '自動インクリメントID',
name varchar(20) NOT NULL DEFAULT '' COMMENT '学生の名前',
age int(11) NOT NULL デフォルト '0' COMMENT '学生の年齢',
sex varchar(2) NOT NULL DEFAULT '' COMMENT '学生の性別',
t_score int(11) NOT NULL デフォルト '0' COMMENT 'CET-4 テストスコア',
total_score int(11) NOT NULL デフォルト '0' COMMENT '学生の合計スコア',
PRIMARY KEY (id )
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Student Information Table';

後続のテストのためにいくつかのデータをランダムに挿入します:

INSERT INTO student (name, age, sex, t_score, total_score) VALUES ('张Three', 20, '男性', 550, 750), ('李四', 19, '女性', 530, 700), ('王五', 22, '男性', 610, 820), (' Zhao Liu', 23, '女性', 590, 780), ('Qian Qi', 21, '男性', 500, 730);

2. ThinkPHP で MySQL フィールドを呼び出す

ThinkPHP では、Db クラスが提供するメソッドを通じて、データベースへの追加、削除、変更、クエリ、およびその他の操作を行うことができます。クエリ操作を実行するときは、MySQL フィールドを呼び出す必要があります。以下に、いくつかの一般的な呼び出しメソッドを示します:

1. 配列メソッドを使用して直接呼び出します:

配列メソッドを使用して、MySQL フィールドを直接呼び出すことができます。たとえば、学生テーブルの ID、名前、年齢、その他のフィールドをクエリする場合は、次のメソッドを使用できます:

$studentList = Db::name('student')->field (['id', 'name', 'age'])->select();

$field パラメータはオプションです。このパラメータを渡さないと、すべてのフィールドがクエリされることになります。

2. 文字列メソッドを使用して呼び出します:

2 番目の方法は、文字列メソッドを直接使用して MySQL フィールドを呼び出すことです (例:

//Query id, name)および年齢 Field
$studentList = Db::name('student')->field('id, name, age')->select();

//Query t_score, total_scoreおよび合計サブフィールド (合計スコアは t_score と total_score を加算した結果です)
$studentList = Db::name('student')->field('t_score, total_score, (t_score total_score) as core') -> select();

文字列メソッドを使用して MySQL フィールドを呼び出す場合、フィールドのエイリアス (エイリアス) に as を使用できます。

3. モデル メソッドを使用した呼び出し:

モデル メソッドを使用して呼び出しを行う場合、最初にモデル クラスを定義する必要があります。たとえば、Student テーブルの構造に基づいて Student モデル クラスを定義できます:

namespace app\common\model;

use think\Model;

class Student 拡張 Model
{

//定义表名和主键
protected $table = 'student';
protected $pk = 'id';

}

次に、Student モデル クラスを使用してクエリを直接操作できます:

//すべての学生リスト情報を取得
$studentList = Student ::field(['id', 'name', 'age'])->select();

//学生の名前と合計スコアを取得
$studentList = Student::field( 'name, (t_score total_score) as core')->select();

モデルを通じて MySQL フィールドを呼び出すと、コードがより簡潔でエレガントになり、SQL インジェクションを効果的に防ぐことができます。問題。

3. ThinkPHP で MySQL フィールド エイリアス操作を実行する

SQL ステートメント クエリを実行するとき、返される結果としていくつかの列エイリアスを使用する必要がある場合があります。たとえば、クエリ結果で学生の名前と、その学生よりも高いスコアを持つ他の学生の数を表示したい場合は、エイリアスを追加できます。

$studentList = Db::name('student ') ->field('name, (SELECT count(*) FROM Student as b WHERE b.total_score>s.total_score) as Rank')->alias('s')->select();

上記のコードは、サブクエリとエイリアス メソッドを通じて、人の名前と順位を取得できます。対応する SQL ステートメントは次のとおりです:

SELECT name, (SELECT count(* ) FROM 学生 as b WHERE b.total_score>s.total_score) ランク FROM student s

ThinkPHP では、エイリアス メソッドを通じて特定のエイリアスを MySQL フィールドに追加して、より効率的なクエリ操作を実現できます。

4. まとめ

この記事では、ThinkPHP で MySQL フィールドを呼び出す 3 つの方法 (配列メソッド呼び出し、文字列メソッド呼び出し、モデルメソッド呼び出し) について説明し、MySQL フィールド エイリアスの操作の追加について紹介しました。 。これらの方法には独自の適用可能なシナリオがあり、さまざまなニーズに応じて柔軟に選択できます。このことからも、ThinkPHP は優れた PHP フレームワークとして、非常に強力かつ柔軟なデータベース操作機能を備えていることがわかります。

以上がthinkphp で mysql フィールドを呼び出す方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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