쿼리 클래스 작성 방법

DB 클래스에 'BH_DB_Get, BH_DB_GetList, BH_DB_GetListWithPage, BH_DB_Update, BH_DB_Insert, BH_DB_Delete' 클래스를 생성하는 정적 메소드가 정의되어 있습니다.
즉 '$qry = new \BH_DB_Get(TABLE_MEMBER);' 는 '$qry = \DB::GetQryObj(TABLE_MEMBER);' 와 같습니다.

BH_DB_Get 사용예제

SELECT muid, mid FROM bh_member WHERE level > 10;

이 SQL문장은 다음과 같이 작성할 수 있습니다.

$data = DB::GetQryObj('bh_member') // 파라미터로 테이블명을 입력
	  ->SetKey('muid, mid')
	  ->AddWhere('level = %d', 10) // '%d'는 숫자만 가능. '%s'는 문자형이지만 DB에 안전하게 등록한다. '%1'은 문자 그대로 대입.
	  ->Get();

결과 예시

$data = array(
		  'muid' => '123',
		  'mid' -> 'admin'
		);

BH_DB_GetList 사용예제

BH_DB_GetList 클래스는 BH_DB_Get 클래스를 상속받았으므로 사용법이 비슷합니다.

SELECT muid, mid FROM bh_member WHERE level > 10 LIMIT 2;

이 SQL문장은 다음과 같이 작성할 수 있습니다.

$qryObj = DB::GetListQryObj('bh_member')
		  ->SetKey('muid, mid')
		  ->AddWhere('level = %d', 10)
		  ->SetLimit(2)
		  ->DrawRows(); // 쿼리 결과를 객체의 'data' 멤버변수에 담습니다. 배열을 반환하려면 GetRows 메소드를 사용합니다.

결과 예시

$qryObj->data = array(
		  [0] => array(
		    'muid' => '123',
		    'mid' -> 'admin'
		  ),
		  [1] => array(
		    'muid' => '124',
		    'mid' -> 'admin2'
		  )
		);

BH_DB_GetListWithPage 사용예제

BH_DB_GetListWithPage 클래스는 BH_DB_Get 클래스를 상속받았으므로 사용법이 비슷합니다.
이 클래스는 페이징이 필요한곳에 필요한 쿼리 클래스입니다.

SELECT muid, mid FROM bh_member WHERE level > 10;

이 SQL문장은 다음과 같이 작성할 수 있습니다.

$qryObj = DB::GetListQryObj('bh_member')
		->SetKey('muid, mid')
		->AddWhere('level = %d', 10)
		->SetPage(1) // 현재 페이지를 입력합니다.
		// 페이징 링크의 URL을 설정합니다.
		// 'App::SetFollowQuery'에서 설정한 URL쿼리에서 'page'를 제외하고 URL경로 뒤에 붙입니다.
		->SetPageUrl(App::URLAction('List') . App::GetFollowQuery('page'))
		->DrawRows(); // 쿼리 결과를 객체의 'data' 멤버변수에 담습니다.

결과 예시

$qryObj->data = array(
		[0] => array(
		'muid' => '123',
		'mid' -> 'admin'
		),
		[1] => array(
		'muid' => '124',
		'mid' -> 'admin2'
		)
		);
echo $qryObj->GetPageHtml(); // 페이지를 출력합니다.

BH_DB_Update 사용예제

UPDATE bh_member SET mname = '철수', age = 10, update_count = update_count + 1 WHERE muid = '123' AND mid = 'admin';

이 SQL문장은 다음과 같이 작성할 수 있습니다.

$res = DB::UpdateQryObj('bh_member')
		->SetDataStr('mname', '철수') // 문자열을 등록
		->SetDataNum('age', 10) // 숫자를 등록
		->SetData('update_count', 'update_count + 1') // 쿼리문 형
		->AddWhere('muid = %d', 123)
		->AddWhere('mid = %s', 'admin')
		->Run();

BH_DB_Insert 사용예제

INSERT INTO bh_member (mname, muid, mid) VALUES('철수', '123', 'admin');

이 SQL문장은 다음과 같이 작성할 수 있습니다.

$res = DB::InsertQryObj('bh_member')
		->SetDataStr('mname', '철수') // 문자열을 등록
		->SetDataNum('muid', 123) // 숫자를 등록
		->SetDataStr('mid', 'admin')
		->Run();

BH_DB_Delete 사용예제

DELETE FROM bh_member WHERE muid = '123' AND mid = 'admin';

이 SQL문장은 다음과 같이 작성할 수 있습니다.

$res = DB::DeleteQryObj('bh_member')
		->AddWhere('muid = %1', 123)
		->AddWhere('mid = %s', 'admin')
		->Run();