>  기사  >  PHP 프레임워크  >  thinkphp에서 mysql 필드를 호출하는 방법

thinkphp에서 mysql 필드를 호출하는 방법

WBOY
WBOY앞으로
2023-05-29 23:28:48851검색

1. 데이터베이스 테이블 및 데이터 생성

데이터베이스 작업을 수행하기 전에 먼저 데이터베이스 및 해당 데이터 테이블을 생성해야 합니다. 우리는 학생에 대한 기본 정보를 저장하기 위해 학생이라는 데이터베이스 테이블을 구축해야 하는 학생 관리 시스템을 개발해야 한다고 가정합니다. 테이블에는 다음 필드가 포함되어 있습니다.

id: 기본 키, 자동 증가.

name: 학생 이름, varchar 유형, 길이 20.

age: 학생 나이, int 유형.

sex: 학생 성별, varchar 유형, 길이 2.

t_score: CET-4 시험 점수, int 유형.

total_score: 총 학생 점수, 정수형.

다음 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. 문자열 메서드를 사용하여 호출:

두 번째 방법은 문자열 메서드를 직접 사용하여 MySQL 필드를 호출하는 것입니다. 예:

//Query id, name 및 age 필드
$studentList = Db::name(' 학생 ')->field('id, 이름, 나이')->select();

//t_score, total_score 및 total Score 필드 쿼리 (총점은 t_score와 total_score를 더한 결과입니다)
$studentList = Db::name('student')->field('t_score, total_score, (t_score+total_score) as Score')->select();

문자열 모드를 사용하여 MySQL 필드를 호출할 때 우리는 필드 별칭(별칭)으로 전달할 수 있습니다.

3. 모델 메소드를 사용하여 호출:

모델 메소드를 사용하여 호출할 때는 먼저 모델 클래스를 정의해야 합니다. Student라는 모델 클래스는 학생 테이블의 구조를 기반으로 정의할 수 있습니다

namespace appcommonmodel;

use thinkModel;

class Student 확장 Model
{

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

}

다음으로 Student 모델 클래스를 사용하여 다음을 수행할 수 있습니다. 직접 운영 쿼리:

//모든 학생 목록 정보 가져오기
$studentList = Student::field(['id', 'name', 'age'])->select();

//학생 가져오기 이름 및 총 개수 Points
$studentList = Student::field('name, (t_score+total_score) as Score')->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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제