ホームページ  >  記事  >  PHPフレームワーク  >  thinkphpでmysqlフィールドを呼び出す方法

thinkphpでmysqlフィールドを呼び出す方法

WBOY
WBOY転載
2023-05-29 23:28:48819ブラウズ

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 DEFAULT '0' COMMENT '学生年龄',
  
sex
 varchar(2) NOT NULL DEFAULT '' COMMENT '学生性别',
  
t_score
 int(11) NOT NULL DEFAULT '0' COMMENT 'CET-4考试成绩',
  
total_score
 int(11) NOT NULL DEFAULT '0' COMMENT '学生成绩总和',
  PRIMARY KEY (
id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生信息表';

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

INSERT INTO 
student
 (
name
, 
age
, 
sex
, 
t_score
, 
total_score
) VALUES ('张三', 20, '男', 550, 750), ('李四', 19, '女', 530, 700), ('王五', 22, '男', 610, 820), ('赵六', 23, '女', 590, 780), ('钱七', 21, '男', 500, 730);

2. ThinkPHP 呼び出し内

の MySQL フィールド Db クラスによって提供されるメソッドを使用して、ThinkPHP のデータベースに追加、削除、変更、クエリなどを行うことができます。クエリ操作を実行するときは、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 extends 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 student as b WHERE b.total_score>s.total_score) as rank FROM student s

ThinkPHP では、エイリアス メソッドを使用して、MySQL フィールドに指定したエイリアスを設定して、より効率的なクエリ操作を実現できます。

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

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。