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('表达式','查询条件');
표현식은 대소문자를 구분하지 않습니다. 지원되는 쿼리 표현식은 다음과 같으며 각각의 의미는 다음과 같습니다.
$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 중국어 웹사이트의 기타 관련 기사를 참조하세요!