-
- class HRDB{
- protected $pdo;
- protected $res;
- protected $config;
-
- /*생성자* /
- function __construct($config){
- $this->Config = $config;
- $this->connect();
- }
-
- /*데이터베이스 연결 * /
- 공용 함수 connect(){
- $this->pdo = new PDO($this->Config['dsn'], $this->Config['name'], $this - >Config['password']);
- $this->pdo->query('set names utf8;');
- //결과를 stdClass로 직렬화
- //$this - >pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
- //예외를 포착하는 코드를 직접 작성하세요
- $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO ::ERRMODE_EXCEPTION);
- }
-
- /*데이터베이스 닫기*/
- 공용 함수 close(){
- $this->pdo = null;
- }
-
- 공개 함수 쿼리($sql){
- $res = $this->pdo->query($sql);
- if($res){
- $this->res = $res;
- }
- }
- 공개 함수 exec($sql){
- $res = $this->pdo->exec($sql);
- if($ res ){
- $this->res = $res;
- }
- }
- 공개 함수 fetchAll(){
- return $this->res->fetchAll();
- }
- 공용 함수 fetch(){
- return $this->res->fetch();
- }
- public function fetchColumn(){
- return $this- > ;res->fetchColumn();
- }
- 공개 함수 lastInsertId(){
- return $this->res->lastInsertId();
- }
-
- / **
- * 매개변수 설명
- * int $debug 디버깅 활성화 여부, 활성화하면 sql 문이 출력됩니다.
- * 0 비활성화
- * 1 활성화
- * 2 디버깅 활성화 및 종료 프로그램
- * int $ 모드 반환 유형
- * 0은 여러 레코드를 반환합니다.
- * 1은 단일 레코드를 반환합니다.
- * 2 행 수를 반환합니다.
- * 문자열/배열 $table 데이터베이스 테이블, two 값 전달 모드
- * 일반 모드:
- * 'tb_member, tb_money'
- * 배열 모드:
- * array('tb_member', 'tb_money')
- * 문자열/배열 $fields 쿼리할 데이터베이스 필드, 비워둘 수 있음, 기본값은 모두 검색, 두 가지 값 전달 모드
- * 일반 모드:
- * '사용자 이름, 비밀번호'
- * 배열 모드:
- * array('username', 'password')
- * 문자열/배열 $sqlwhere 쿼리 조건, 비어 있음 허용, 두 가지 값 전달 모드
- * 일반 모드:
- * 'and type = 1 및 사용자 이름 like " %os%"'
- * 배열 모드 :
- * array('type = 1', 'username like "%os%"')
- * string $orderby 정렬, 기본값은 id 역순
- */
- 공개 함수 선택($debug, $mode, $table, $fields="*", $sqlwhere="", $orderby="tbid desc"){
- / / 매개변수 처리
- if(is_array($table)){
- $table = implode(', ', $table);
- }
- if(is_array($fields)){
- $ fields = implode(', ', $fields);
- }
- if(is_array($sqlwhere)){
- $sqlwhere = ' and '.implode(' and ', $sqlwhere);
- }
- //데이터베이스 작업
- if($debug === 0){
- if($mode === 2){
- $this->query("select count( tbid ) from $table where 1=1 $sqlwhere");
- $return = $this->fetchColumn();
- }else if($mode === 1){
- $this- > ;query("select $fields from $table where 1=1 $sqlwhere order by $orderby");
- $return = $this->fetch();
- }else{
- $this - >query("select $fields from $table where 1=1 $sqlwhere order by $orderby");
- $return = $this->fetchAll();
- }
- return $return ;
- }else{
- if($mode === 2){
- echo "$table에서 개수(tbid) 선택, 여기서 1=1 $sqlwhere";
- }else if($mode = == 1){
- echo "$table에서 $fields 선택, 여기서 1=1 $sqlwhere order by $orderby";
- }
- else{
- echo "1=1인 $sql에서 $orderby로 주문한 $table에서 $fields 선택";
- }
- if($debug === 2){
- exit;
- }
- }
- }
-
- /**
- * 매개변수 설명
- * int $debug 디버깅 활성화 여부, 활성화하면 sql 문이 출력됩니다.
- * 0 비활성화
- * 1 활성화
- * 2 디버깅 활성화 및 종료 프로그램
- * int $ 모드 반환 유형
- * 0 반환 정보 없음
- * 1 실행 항목 수를 반환
- * 2 마지막으로 삽입된 레코드의 ID를 반환
- * 문자열/배열 $ 테이블 데이터베이스 테이블, 두 가지 값 전달 모드
- * 일반 모드:
- * 'tb_member, tb_money'
- * 배열 모드:
- * array('tb_member', 'tb_money')
- * string/array $set 필드를 삽입하고 Content, 두 가지 값 전달 모드
- * 일반 모드:
- * 'username = "test", type = 1, dt = now()'
- * Array 모드:
- * array('username = "test"', 'type = 1', 'dt = now()')
- */
- 공개 함수 삽입($debug, $mode, $table, $set){
- / /参数处理
- if(is_array($table)){
- $table = implode(', ', $table);
- }
- if(is_array($set)){
- $set = implode(', ', $set);
- }
- //数据库操작
- if($debug === 0){
- if($mode === 2){
- $this->query("$table set $set에 삽입");
- $return = $this->lastInsertId();
- }else if($mode === 1) {
- $this->exec("$table set $set에 삽입");
- $return = $this->res;
- }else{
- $this->query ("$table set $set에 삽입");
- $return = NULL;
- }
- return $return;
- }else{
- echo "$table set $set에 삽입" ;
- if($debug === 2){
- 종료;
- }
- }
- }
-
- /**
- * 매개변수 설명
- * int $debug 디버깅 활성화 여부, 활성화하면 sql 문이 출력됩니다.
- * 0 비활성화
- * 1 활성화
- * 2 디버깅 활성화 및 종료 program
- * int $ 모드 반환 유형
- * 0 반환 정보 없음
- * 1 실행 항목 수 반환
- * 문자열 $table 데이터베이스 테이블, 두 가지 값 전달 모드
- * 일반 모드:
- * 'tb_member, tb_money'
- * 배열 모드:
- * array('tb_member', 'tb_money')
- * string/array $set 업데이트가 필요한 필드 및 내용, 값 2개 -통과 모드
- * 일반 모드:
- * 'username = "test", type = 1, dt = now()'
- * 배열 모드:
- * array('username = "test" ', 'type = 1', 'dt = now()')
- * 문자열/배열 $sqlwhere 조건 수정, 비어 있음, 두 가지 값 전달 모드 허용
- * 일반 모드:
- * 'and type = 1 및 사용자 이름 like "%os% "'
- * 배열 모드:
- * array('type = 1', 'username like "%os%"')
- */
- 공개 함수 update($debug, $mode, $table, $set, $sqlwhere=""){
- //参数处理
- if(is_array($table)){
- $table = implode(', ', $table);
- }
- if(is_array($set)){
- $set = implode(', ', $set);
- }
- if(is_array($ sqlwhere)){
- $sqlwhere = ' and '.implode(' and ', $sqlwhere);
- }
- //数据库操작
- if($debug === 0){
- if($mode === 1){
- $this->exec("update $table set $set where 1=1 $sqlwhere");
- $return = $this->res;
- }else{
- $this->query("update $table set $set where 1=1 $sqlwhere");
- $return = NULL;
- }
- return $return ;
- }else{
- echo "$table set $set 업데이트, 여기서 1=1 $sqlwhere";
- if($debug === 2){
- exit;
- }
- }
- }
-
- /**
- * 매개변수 설명
- * int $debug 디버깅 활성화 여부, 활성화하면 sql 문이 출력됩니다.
- * 0 비활성화
- * 1 활성화
- * 2 디버깅 활성화 및 종료 program
- * int $ mode return type
- * 0 반환 정보 없음
- * 1 실행 항목 개수 반환
- * string $table 데이터베이스 테이블
- * string/array $sqlwhere 삭제 조건, 허용 비어 있으려면 두 가지 값 전달 모드
- * 일반 모드:
- * 'and type = 1 및 사용자 이름은 "%os%"''
- * 배열 모드:
- * array('type = 1', '사용자 이름은 "%os %"와 같습니다')
- */
- 공용 함수 delete($debug, $mode, $table, $sqlwhere=""){
- //参数处理
- if( is_array($sqlwhere)){
- $sqlwhere = ' and '.implode(' and ', $sqlwhere);
- }
- //数据库操작
- if($debug === 0) {
- if($mode === 1){
- $this->exec("1=1 $sqlwhere인 $table에서 삭제");
- $return = $this->res ;
- }else{
- $this->query("1=1 $sqlwhere인 $table에서 삭제");
- $return = NULL;
- }
- return $return;
- }else{
- echo "1=1인 $sqlwhere에서 삭제";
- if($debug === 2){
- exit;
- }
- }
- }
- }
复代码
|