PHP DB 접속

(2019-08-01)

MySQL Improved, mysqli, PHP Data Objects, PDO

1. PHP로부터 DB 접속MySQLDB 접속을 위한 3가지 API
     -  mysql_   : MySQL 라이브러리 (PHP 5.5 부터 제거 대상, PHP 7.0 부터 폐기)
     -  mysqli_  : MySQL Improved 라이브러리 (PHP 5.0부터 도입)
     -  PDO      : PHP Data Objects (PDO) interface (PHP 5.1부터 도입)
        . 객체지향 프로그래밍으로 사용 가능
        . PDO 확장 기능이 제공하는 클래스
        . 가능 DB : MySQL,PostgreSQL,Oracle,SQLite,ODBC,MS-SQL 등


2. mysqli_ 접속 방법

  ㅇ (절차식 프로그래밍 방식) 

  ㅇ (객체지향 프로그래밍 방식)
     - $mysqli = new mysqli('hostname', 'username', 'password', 'databasename');
        
$mysqli = new mysqli('hostname','username','password','databasename');
if($mysqli->connect_errno) die('db 접속 실패',$mysqli->connect_error);
3. PDO 접속 및 사용 방법 ㅇ PDO 접속 방법 - $pdo = new PDO(dsn, 'username', 'password'); . dsn (Data Source Name) : 'dbtype:host=hostname;dbname=databasename' . dbtype : MySQLDBMS 종류 (例, mysql 등) . hostname : 서버호스트명 (例, localhost 등) . databasename : 대상 데이터베이스명 . $pdo : 커넥션 식별 정보를 갖고 반환되는 PDO 객체
try {
    $pdo = new PDO('mysql:host=localhost;dbname=test','username','password');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        // 문제 발생시, 오류 숨기지 않고 오류 처리
} catch (PDOException $e) {
    echo "데이터베이스에 접속할 수 없습니다!";
        echo $e->getMessage(); // 예외 발생 메세지
        echo $e->getFile(); // 예외 발생 파일명(스크립트명)
        echo $e->getLine(); // 스크립트 내 예외 발생 위치
    exit;
}
ㅇ PDO 오류처리방식 ☞ PHP 홈 : Errors and error handling 참조 - 3가지 모드로 동작 : 침묵(silent,기본), 경고(warning), 예외(exception) . PDO::ERRMODE_SILENT (default), PDO::ERRMODE_WARNING, PDO::ERRMODE_EXCEPTION - 침묵 모드 (default) . 실행중 문제 발생하면, 예외 발생 없이, PDO 관련 메소드가 false를 반환 . 이에따른 errorInfo() 메서드를 이용하면, 자세한 오류 정보를 얻을 수 있음 - 경고 모드 : $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); . 실행중 문제 발생하면, 예외 발생 없이, 경고 수준의 오류 메세지 발생 - 예외 모드 : $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); . 모든 문제를 자세히 알려줌 (예외 처리 안하면, 프로그램 실행이 중단됨) ㅇ PDO 사용방법 - SQL 쿼리 (단순 열람) . $affectedRowsNums = $pdo->exec($sql); .. exec() 메소드는, 쿼리 수행 결과에 따라 변경된 레코드 개수 만을 반환함 .. 주로, create table, insert into, update, delete 등의 sql 명령에 적합 - SQL 쿼리 (결과 레코드 집합 반환) . $result = $pdo->query($sql); .. query() 메소드는, 모든 결과 레코드 집합이 담긴 PDOStatement 객체를 반환 - SQL 쿼리 결과 처리
while ($row = $result->fetch()) {
    // 매 레코드(row) 마다 처리
}


[PHP] 1. PHP 2. PHP 기초 문법 3. PHP 및 HTTP 4. PHP 정규표현식 5. PHP 쿠키/세션 6. PHP 내장 웹서버 7. PHP 환경 설정 8. PHP 객체지향 9. PHP 배열 10. PHP DB 접속
[자료형,전역변수] [PHP 함수,활용]
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
          1. 프로그램, 프로그래밍
          2. 프로그래밍 기법
      1.   프로그래밍 언어론
      2.   구조적 프로그래밍
      3.   객체지향 프로그래밍
      4.   자료표현코드
      5.   자료구조
      6.   알고리즘
      7.   시스템 소프트웨어
      8.   프로그래밍언어 종류
            1. 프로그래밍 언어
        1.   C
        2.   C++
        3.   자바(Java)
        4.   자바스크립트
        5.   PHP
              1. PHP
              2. PHP 기초 문법
              3. PHP 및 HTTP
              4. PHP 정규표현식
              5. PHP 쿠키/세션
              6. PHP 내장 웹서버
              7. PHP 환경 설정
              8. PHP 객체지향
              9. PHP 배열
              10. PHP DB 접속
          1.   자료형,전역변수
          2.   PHP 함수,활용
        6.   파이썬
        7.   (기타 언어)
      9.   프로그래밍 기타일반
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록     참고문헌