여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. PHP - MySQL 연결
PHP – MySQL 연결
2년전 작성
9개월전 수정

MySQL 연결

PHP 5 이상은 다음을 사용하여 MySQL 데이터베이스에서 작동할 수 있다.

  • MySQLi 확장 (“i”는 개선됨을 나타냄)
  • PDO(PHP 데이터 개체)

MySQLi vs PDO

내가 선호하는 방식으로 사용하면 된다.

MySQLi와 PDO에는 모두 다음과 같은 장점이 있다.

PDO는 12개의 다른 데이터베이스 시스템에서 작동하지만 MySQLi는 MySQL 데이터베이스에서만 작동한다.
따라서 다른 데이터베이스를 사용하기 위해 프로젝트를 전환해야 하는 경우 PDO가 프로세스를 쉽게 만든다. 연결 문자열과 몇 가지 쿼리만 변경하면 된다.
MySQLi를 사용하면 쿼리가 포함된 전체 코드를 다시 작성해야 한다.

둘 다 객체 지향이지만 MySQLi는 절차적 API도 제공한다.

Prepared Statements는 SQL 주입으로부터 보호하며 웹 애플리케이션 보안에 매우 중요하다.

대부분의 경우 php5 mysql 패키지가 설치될 때 MySQLi 확장이 자동으로 설치된다.

MySQLi 객체 지향

PHP
<?php
$servername = "localhost";
$username = "username";
$password = "password";

$conn = new mysqli($servername, $username, $password);

if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

MySQLi 절차

PHP
<?php
$servername = "localhost";
$username = "username";
$password = "password";

$conn = mysqli_connect($servername, $username, $password);

if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

PDO

PDO에서는 Database를 지정하지 않으면 예외가 발생한다.

PHP
<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

PDO의 큰 이점은 데이터베이스 쿼리에서 발생할 수 있는 모든 문제를 처리할 수 있는 예외 클래스가 있다는 것이다.
try{ } 블록 내에서 예외가 발생하면 스크립트는 실행을 중지하고 첫 번째 catch(){ } 블록으로 직접 흐른다.

연결 닫기

스크립트가 종료되면 연결이 자동으로 닫힌다.

스크립트가 종료되기 전에 연결을 닫는 방법을 알아보자.

MySQLi 객체 지향

PHP
<?php
$conn->close();
?>

MySQLi 절차

PHP
<?php
mysqli_close($conn);
?>

PDO

PHP
<?php
$conn = null;
?>
참고

Mingg`s Diary
밍구
공부 목적 블로그