본문 바로가기
PHP

[PHP] PDO DB 커넥션 빠르게 구현하기

by teamnova 2021. 5. 4.
728x90

안녕하세요.

PDO DB 커넥션 코드는 웹서버 새로 셋팅할때마다 필요한 코드입니다.

스틱 코드를 이용해서 빠르게  PDO DB 커넥션 코드를 구현하는 방법을 공유 하겠습니다.

 


사전 준비 사항

apache, php, mysql 설치 및 연동


 

stickode.com/detail.html?no=2089

 

PDO란?

  • PDO(PHP Data Objects)란 여러가지 데이터베이스를 제어하는 방법을 표준화시킨 것이다. 데이터베이스는 다양한 종류가 있다. 그리고 종류에 따라서 서로 다른 드라이브를 사용해 왔는데 드라이브의 종류에 따라서 데이터베이스를 제어하기 위한 API가 달랐다. PDO를 사용하면 동일한 방법으로 데이터베이스를 제어할 수 있다.

1. DB 정보를 담고 있는 php 파일

  • 파일명: /var/info.php
<?php
  $host = '호스트 IP';
  $username = 'DB아이디';
  $password = 'DB암호';
  $dbname = '데이터베이스 이름';
?>

 

2. DB를 연결하여 PDO 객체를 리턴하는 php 파일

  • 파일명: dbcon.php
<?php

    function getDBCon()
    {
      include('/var/info.php');	//DB정보가 적혀있는 php 문서 위치

      $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4');

      try {

          $con = new PDO("mysql:host={$host};dbname={$dbname}",$username, $password, $options);
      } catch(PDOException $e) {

          die("Failed to connect to the database: " . $e->getMessage());
      }


      $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);        //PDO 에러모드 설정 => try{}catch{}로 PDOException를 throw 받는 모드.
      $con->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);   //sql문 실행 결과를 어떤 기본 모드로 받을 것인지 설정.
                                                                            //FETCH_ASSOC: 결과 집합에 반환 된대로 열 이름으로 인덱싱 된 배열을 반환합니다.


      return $con;
    }


?>

 

3. sql문 실행 및 결과 출력 php 파일

  • 파일명: test.php
include('dbcon.php');

$idx = 1;

$sql = "SELECT * FROM test WHERE idx = ?";

$sql_result = getDBCon()->prepare($sql);
$sql_result->execute(array($idx));

var_dump($sql_result->fetch(PDO::FETCH_ASSOC));	//sql문 실행결과 1row array로 리턴하여 출력

 

 

4. 실행결과