>  기사  >  PHP 프레임워크  >  thinkphp가 데이터베이스를 쿼리하는 방법

thinkphp가 데이터베이스를 쿼리하는 방법

藏色散人
藏色散人원래의
2019-08-23 13:29:445645검색

thinkphp가 데이터베이스를 쿼리하는 방법

thinkphp에서 데이터베이스를 쿼리하는 방법은 무엇입니까?

데이터베이스 쿼리

ThinkPHP에는 데이터 쿼리 작업을 빠르게 수행할 수 있는 매우 유연한 쿼리 방법이 내장되어 있습니다.

쿼리 조건은 CURD와 같은 모든 작업에 사용할 수 있으며 where 메소드의 매개변수로 전달하기만 하면 됩니다.

ThinkPHP에서는 문자열을 쿼리 조건으로 직접 사용하는 것을 지원할 수 있지만 대부분의 경우 인덱스 배열이나 객체를 쿼리 조건으로 사용하는 것이 더 안전하기 때문에 권장됩니다.

쿼리 방법

1. 문자열을 쿼리 조건으로 사용

가장 전통적인 방법이지만 그다지 안전하지 않습니다. 예:

$User = M("User"); // 实例化User对象
$User->where('type=1 AND status=1')->select();

최종 생성된 SQL 문은

SELECT * FROM think_user WHERE type=1 AND status=1

2 . 쿼리 조건으로 배열을 사용하세요

$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['status'] = 1;
 // 把查询条件传入查询方法
$User->where($condition)->select();

최종 생성된 SQL 문은

SELECT * FROM think_user WHERE 'name'='thinkphp' AND status=1

다중 필드 쿼리를 수행하는 경우 필드 간의 기본 논리적 관계는 논리적 AND이지만 기본 논리적 판단은 다음을 사용하여 변경할 수 있습니다. _logic을 사용하여 쿼리 논리를 정의하는 규칙:

$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR'; //定义查询逻辑
 // 把查询条件传入查询方法
$User->where($condition)->select();

최종 생성된 SQL 문은

SELECT * FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'

셋째, 개체 메서드를 사용하여 쿼리합니다(여기서는 stdClass 내장 개체를 예로 사용)

$User = M("User"); // 实例化User对象
 // 定义查询条件
$condition = new stdClass(); 
$condition->name = 'thinkphp'; 
$condition->status= 1; 
$User->where($condition)->select();

최종 생성된 SQL 문은 위와 같습니다.

SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1

객체 모드 쿼리를 사용하는 것과 배열 모드 쿼리를 사용하는 효과는 동일하며, 대부분의 경우 더 효율적으로 배열 모드를 사용하는 것이 좋습니다. 나중에 특정 쿼리를 설명하기 위해 배열 모드를 예로 사용하겠습니다.

표현식 쿼리

위 쿼리 조건은 단순한 동등 판단일 뿐입니다. 쿼리 표현식은 더 많은 SQL 쿼리 구문을 지원하는 데 사용할 수 있으며, 배열 또는 객체 쿼리에도 사용할 수 있습니다(아래에서는 배열 모드만 사용됨). 예) 쿼리 표현식 형식은 다음과 같습니다.

$map['字段名'] = array('表达式','查询条件');

표현식은 대소문자를 구분하지 않습니다. 지원되는 쿼리 표현식은 다음과 같으며 각각의 의미는 다음과 같습니다.

thinkphp가 데이터베이스를 쿼리하는 방법

$map['id']  = array('eq',100);  id = 100;
 $map['id']  = array('egt',100);id >= 100
 $map['name'] = array('like','thinkphp%'); name like 'thinkphp%' 模糊查询
 $map['a'] =array('like',array('%thinkphp%','%tp'),'OR');$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND'); (a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')

이 문서는 ThinkPHP 프레임워크 기술에서 가져온 것입니다. 기사 칼럼: http://www.php.cn/phpkj/thinkphp/

위 내용은 thinkphp가 데이터베이스를 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.