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 중국어 웹사이트의 기타 관련 기사를 참조하세요!