참 오랫만에 글을 올리는 것 같습니다..

제가 좀 회사에 적응한다고 나름 바뻐서 이렇게 주말에 올리게 되었습니다..

오늘은 php를 개발한다면 그래도 mysql에 대한 함수를 알아야 할 것 같아서 정리해 보았습니다.

역시 PHP 매뉴얼을 참조해서 내용을 적어보았습니다. 많은 도움이 되었으면 합니다.

1. resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )
설명 : MySQL 서버에 접속을 생성하거나 기존 접속을 재사용한다.
인수 :
server(MySQL 서버명을 입력하며, 포트번호가 포함될 수 있다. 예) "hostname:port" 또는, 로컬호스트를 위해 로컬 소켓 경로가 될 수도 있다. 예) ":/path/to/socket" , PHP 지시어 mysql.default_host를 지정하지 않았다면(기본값), 'localhost:3306'입니다. SQL 안전 모드에서는, 이 인수를 무시하고 항상 'localhost:3306' 값을 사용합니다.)
username(사용자명. 기본값은 mysql.default_user로 지정합니다. SQL 안전 모드에서는, 이 인수를 무시하고 사용중인 서버 프로세스를 소유하는 사용자 이름을 사용합니다.)
password(비밀번호. 기본값은 mysql.default_password로 지정합니다. SQL 안전 모드에서는, 이 인수를 무시하고 빈 비밀번호를 사용합니다.)
new_link(동일한 인수로 mysql_connect()을 다시 호출하면, 새로운 link가 생성되는 것이 아니라, 이미 생성된 link 식별자 값을 돌려받게 된다. 단, new_link 로 mysql_connect()를 호출하면 동일한 인수로 mysql_connect()를 이미 호출하였다 하더라도 항상 새로운 접속을 생성한다. SQL 안전 모드에서는, 이 인수를 무시합니다.)
client_flags(client_flags 인수는 다음 상수들을 조합하여 사용할 수 있습니다: 128 (LOAD DATA LOCAL 핸들링 활성화), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE, MYSQL_CLIENT_INTERACTIVE. 자세한 정보는 예약 상수를 읽어보십시오. SQL 안전 모드에서는, 이 인수를 무시합니다.)
반환값 : 접속 성공시 MySQL link 식별자를 반환하고, 실패시에는 FALSE를 반환한다.

2. bool mysql_select_db ( string $database_name [, resource $link_identifier ] )
설명 : 접속 지시자와 연관된 서버에서 현재 활성화할 데이터베이스를 선택한다. 모든 수반되는 mysql_query() 호출은 활성 데이터베이스에서 처리될 것이다. 
인수 :
database_name(선택할 데이터베이스의 이름.)
link_identifier(MySQL 연결. 지정하지 않으면 mysql_connect()로 연 마지막 연결을 사용합니다. 연결이 없으면, 인수 없이 mysql_connect()를 호출하여 연결을 만듭니다. 연결이 성립되지 않으면 E_WARNING 등급의 오류를 생성합니다.)
반환값 : 성공할 경우 TRUE를, 실패할 경우 FALSE를 반환합니다.

3. resource mysql_query ( string $query [, resource $link_identifier ] )
설명 : mysql_query()는 link_identifier 로 지정한 데이터베이스 서버에 하나의 질의를 전송합니다. (다중 질의는 지원하지 않습니다)
인수 :
query(SQL 질의 -> 질의 문자열은 세미콜론으로 끝나지 않아야 합니다.)
link_identifier(MySQL 연결. 지정하지 않으면 mysql_connect()로 연 마지막 연결을 사용합니다. 연결이 없으면, 인수 없이 mysql_connect()를 호출하여 연결을 만듭니다. 연결이 성립되지 않으면 E_WARNING 등급의 오류를 생성합니다.)
반환값 : mysql_query()는 SELECT, SHOW, DESCRIBE, EXPLAIN, 결과셋을 반환하는 기타 구문에서 성공시 resource를, 오류시 FALSE를 반환합니다. mysql_query()는 다른 형식의 SQL 구문, INSERT, UPDATE, DELETE, DROP 등에서 성공하면 TRUE를, 실패하면 FALSE를 반환합니다. 반환되는 결과 리소스는 mysql_fetch_array()와 같은 결과 테이블을 다루는 함수들에 전달하여 데이터에 접근할 수 있다. SELECT 구문으로 부터 얼마나 많은 행이 있는지 알기 위해서는 mysql_num_rows()를, DELETE, INSERT, REPLACE, UPDATE 구문으로 변경된 행의 개수를 알기 위해서는 mysql_affected_rows()를 사용한다. 질의에 의해 참조되는 테이블에 접근을 허용되지 않은 사용자에 의해 mysql_query()가 실패하면 FALSE를 반환한다.

4. array mysql_fetch_array ( resource $result [, int $result_type ] )
설명 : 인출된 행을 배열로 반환하고, 앞으로 내부 데이터 포인터를 이동한다.
인수 :
result(mysql_query() 호출을 통한 결과 resource.)
result_type(인출될 배열의 형태. 배열의 형태는 다음과 같은 상수가 올 수 있다: MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH. 기본값은 MYSQL_BOTH이다.)
반환값 : 인출된 문자열의 배열을 반환하거나 더 이상 인출할 행이 없을 경우에는 FALSE를 반환한다. 인출되는 배열은 result_type 에 따라 결정이 된다. 기본값인 MYSQL_BOTH는 연관 색인과 숫자형 색인 모두 반환할 것이다. MYSQL_ASSOC를 사용하면, mysql_fetch_assoc()처럼 연관된 인덱스 배열로 반환하고, MYSQL_NUM를 사용하면, mysql_fetch_row()처럼 숫자형 인덱스 배열로 반환한다. 동일한 이름을 포함하는 둘 또는 그 이상의 컬럼들은 마지막 컬럼이 우선권을 가질 것이다. 동일한 이름의 다른 컬럼에 접근하기 위해서는 숫자 색인 또는 별명(alias) 컬럼명을 사용하면 된다. 단, 별명 컬럼들은 원래의 컬럼명으로 데이터를 접근할 수 없다.

5. string mysql_result ( resource $result , int $row [, mixed $field ] )
설명 : MySQL 결과 집합으로부터 하나의 셀에 있는 데이터를 반환한다. 거대한 결과 집합으로 작업할 때, 행 전체를 인출하는 함수 중 하나를 사용할 것이다. 이들 함수는 하나의 함수 호출로 다중 셀의 데이터를 반환할 수 있어서 mysql_result()보다 더 빠르다. 또한, 필드 인수로 숫자 오프셋을 사용하는 것이 필드명 또는 테이블명.필드명 인수를 사용하는 것보다 더 빠르다.
인수 :
result (mysql_query() 호출을 통한 결과 resource.)
row(검색된 결과에서 행번호. 행번호는 0부터 시작한다.)
field(검색을 위한 필드 오프셋 또는 이름. The name or offset of the field being retrieved. 필드 오프셋, 필드명 또는 테이블명.필드명(tablename.fieldname)으로 설정이 가능하다. 컬럼 이름이 별명(alias)이라면('select foo as bar from...'), 컬럼명 대신 별명을 사용한다. 정의하지 않으면 첫번째 필드를 검색한다.)
반환값 : 성공하면 MySQL 결과 집합으로부터 하나의 셀의 데이터를, 실패하면 FALSE를 반환한다

6. bool mysql_close ([ resource $link_identifier ] )
설명 : mysql_close()는 link_identifier 와 연관된 MySQL서버의 비영속적 접속을 종료한다. link_identifier 가 기술되지 않으면 최근 접속된 연결을 사용한다. mysql_close()는 비영구적으로 열려진 링크에서는 일반적으로 스크립트 실행 마지막 부분에서 자동으로 종료되므로 사용할 필요가 없다. resource 해제하기.
인수 :
link_identifier(MySQL 연결. 지정하지 않으면 mysql_connect()로 연 마지막 연결을 사용합니다. 연결이 없으면, 인수 없이 mysql_connect()를 호출하여 연결을 만듭니다. 연결이 성립되지 않으면 E_WARNING 등급의 오류를 생성합니다.)
반환값 : 성공할 경우 TRUE를, 실패할 경우 FALSE를 반환합니다.



예시) 간단하게 함수를 만들어서 사용해 보십시오.
class화 사용
class db_connect {
function db_connect($host,$user,$pass,$db) {            
        $connect=@mysql_connect("$host","$user","$pass");
        if(!$connect) {
           //오류처리
            exit;
        }
        else {
            $status=mysql_select_db($db, $connect);
            if(!$status) {
                //오류처리
                exit;
            }
        }
    }

    function query_func($query,$num) {
         switch($num) {
            case (1) : $query=mysql_query($query,$connect);
            case (2) : $query=mysql_num_rows($query); break;
            case (3) : $query=mysql_fetch_array($query); break;
            case (4) : $query=@mysql_result($query,0); break;
            case (5) : $query=mysql_fetch_row($query); break;
            case (6) : $query=mysql_affected_rows($connect); break;
            case (7) : $query=mysql_fetch_assoc($query); break;
        }
        return $query;
    }

    function close() {
        mysql_close($connect);
        return;
    }
 }

사용방법
$DBCON=new db_connect($HOST,$USER,$PWD,$DB);
$rs=$DBCON->query_func($QUERY,1);
$count=$DBCON->query_func($rs,2); //쿼리의 결과행의 갯수를 반환함

while($data=$DBCON->query_func($rs,4)){ //쿼리의 결과값을 배열에 저장함
      //가져온 데이터로 표출구현함
}

지효가 놀자고 해서 이제 글을 마칠까 합니다. 많은 도움되면 좋겠습니다.

+ Recent posts