쿼리 클래스 작성 방법
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();