Maison  >  Article  >  cadre php  >  Comment appeler le champ mysql dans thinkphp

Comment appeler le champ mysql dans thinkphp

WBOY
WBOYavant
2023-05-29 23:28:48870parcourir

1. Créer des tables et des données de base de données

Avant d'effectuer des opérations de base de données, nous devons d'abord créer la base de données et les tables de données correspondantes. Nous supposons que nous devons développer un système de gestion des étudiants, dans lequel une table de base de données nommée student doit être établie pour stocker les informations de base sur les étudiants. Le tableau contient les champs suivants :

id : clé primaire, auto-incrémentation.

name : nom de l'étudiant, type varchar, longueur 20.

âge : âge de l'étudiant, type int.

sexe : sexe étudiant, type varchar, longueur 2.

t_score : résultat du test CET-4, type int.

total_score : score total de l'élève, type int.

Nous pouvons utiliser l'instruction SQL suivante pour créer la table de données :

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='学生信息表';

Nous insérons aléatoirement certaines données pour des tests ultérieurs :

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 Appelez le champ MySQL dans ThinkPHP

Nous pouvons utiliser la méthode fournie par la classe Db. , effectuez des opérations telles que l'ajout, la suppression, la modification et l'interrogation de la base de données dans ThinkPHP. Lors de l'exécution d'opérations de requête, nous devons appeler les champs MySQL. Ce qui suit répertorie quelques méthodes d'appel courantes :

1. Utilisez la méthode tableau pour appeler directement :

Nous pouvons utiliser la méthode tableau pour appeler directement les champs MySQL. L'interrogation de l'identifiant, du nom, de l'âge et d'autres champs de la table des étudiants peut être implémentée de la manière suivante :

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

Le paramètre $field est facultatif. Ne pas transmettre ce paramètre signifie interroger tous les champs.

2. Utilisez la méthode de chaîne pour appeler :

La deuxième méthode consiste à utiliser directement la méthode de chaîne pour appeler les champs MySQL, par exemple :

//Champs d'identifiant, de nom et d'âge de requête
$studentList = Db::name(' student ')->field('id, name, age')->select();

//Interrogez les champs t_score, total_score et total score (le score total est le résultat de l'ajout de t_score et total_score)
$studentList = Db::name('student')->field('t_score, total_score, (t_score+total_score) as score')->select();

Lors de l'appel du champ MySQL en mode chaîne, nous peut passer tel quel un alias de champ (alias).

3. Appel à l'aide de la méthode modèle :

Lors de l'appel à l'aide de la méthode modèle, nous devons d'abord définir la classe modèle. Une classe modèle nommée Student peut être définie en fonction de la structure de la table student

namespace appcommonmodel;

use thinkModel;

class Student extends Model
{

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

}

Ensuite, nous pouvons utiliser la classe modèle Student pour opérer directement Requête :

//Obtenir toutes les informations sur la liste des étudiants
$studentList = Student::field(['id', 'name', 'age'])->select();

//Obtenir l'étudiant nom et nombre total Points
$studentList = Student::field('name, (t_score+total_score) as score')->select();

Appeler des champs MySQL via des modèles peut rendre notre code plus concis et élégant, et peut prévenir efficacement les problèmes d'injection SQL.

3. Effectuez une opération d'alias de champ MySQL dans ThinkPHP

Lors de l'exécution d'instructions de requête SQL, nous devons parfois utiliser des alias de colonne comme identifiant des résultats renvoyés. Par exemple, si nous souhaitons afficher le nom de l'étudiant et le nombre d'autres étudiants ayant des scores plus élevés que lui dans les résultats de la requête, nous pouvons ajouter un alias :

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

Le code ci-dessus peut obtenir le nom et le classement de la personne via la méthode de sous-requête et d'alias. L'instruction SQL correspondante est :

SELECT name, (SELECT count(*) FROM student as b WHERE b.total_score>s.total_score) as rank FROM student s

Dans ThinkPHP, en utilisant la méthode d'alias, nous pouvons définir des alias spécifiés pour les champs MySQL afin d'obtenir des opérations de requête plus efficaces.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer