최신 웹 개발 튜토리얼
 

PHP MySQL로 연결


PHP 5 이상은 MySQL 데이터베이스를 사용하여 작업 할 수 있습니다 :

  • MySQLi 확장 (the "i" stands for improved)
  • PDO (PHP Data Objects)

PHP의 이전 버전의 MySQL의 확장을 사용했다. 그러나이 확장 2012을 사용합니다.


나는 MySQLi 또는 PDO를 사용 하는가?

당신이 짧은 대답을해야하는 경우가 될 것 "Whatever you like" .

MySQLi 및 PDO 모두 자신의 장점을 가지고 :

PDO는 MySQLi는 MySQL 데이터베이스와 함께 작동합니다으로 12 개 개의 데이터베이스 시스템에 작동합니다.

다른 데이터베이스를 사용하는 프로젝트를 전환해야한다면, PDO는 프로세스가 쉽습니다. 당신은 연결 문자열과 몇 쿼리를 변경해야합니다. MySQLi를 사용하면 전체 코드를 다시 작성해야합니다 - 쿼리가 포함되어 있습니다.

모두 객체 지향하지만, MySQLi는 또한 절차 적 API를 제공합니다.

모두 문 준비를 지원합니다. 준비된 문은 SQL 주입으로부터 보호하고, 웹 애플리케이션 보안에 매우 중요하다.


MySQLi 및 PDO 구문 모두에서 MySQL의 예

이러한면에서, 다음 장에서 우리는 PHP와 MySQL 작업의 세 가지 방법을 보여줍니다

  • MySQLi (object-oriented)
  • MySQLi (procedural)
  • PDO

MySQLi 설치

Linux 및 Windows의 경우 : MySQLi 확장은 자동으로 PHP5 MySQL의 패키지가 설치되어 대부분의 경우에 설치됩니다.

설치 세부 사항에 가서 : http://php.net/manual/en/mysqli.installation.php


PDO 설치

설치 세부 사항에 가서 : http://php.net/manual/en/pdo.installation.php


MySQL의 연결을 열

우리는 MySQL 데이터베이스의 데이터에 액세스하기 전에, 우리는 서버에 연결할 수 있어야합니다 :

실시 예 (MySQLi Object-Oriented)

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

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

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

위의 객체 지향 예제를 참고한다 : $ connect_error는 PHP 5.2.9과 5.3.0까지 부서졌다. 당신이 5.2.9과 5.3.0 이전 PHP 버전과의 호환성을 보장하기 위해 필요한 경우, 다음 코드를 대신 사용합니다

// 연결을 확인
경우 ( mysqli_connect_error() ) {
die("Database connection failed: " . mysqli_connect_error() );
}

실시 예 (MySQLi Procedural)

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

// Create connection
$conn = mysqli_connect($servername, $username, $password);

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

실시 예 (PDO)

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

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

우리는 또한 데이터베이스 지정한 위의 PDO의 예제에서 주목 (myDB) . PDO는에 연결하는 유효한 데이터베이스를 필요로한다. 어떤 데이터베이스가 지정되지 않은 경우, 예외가 발생합니다.

팁 : PDO의 큰 장점은 그것이 우리의 데이터베이스 쿼리에서 발생할 수있는 문제를 처리 할 수있는 예외 클래스를 가지고 있다는 것입니다. 예외가 시도 {} 블록 내에서 발생하는 경우, 스크립트의 실행이 중단되고 상기 제 직접 유입 catch() {} 블록.


연결을 닫습니다

스크립트가 종료 될 때 연결이 자동으로 종료됩니다. 전에 연결을 종료하려면 다음을 사용하십시오

실시 예 (MySQLi Object-Oriented)

$conn->close();

실시 예 (MySQLi Procedural)

mysqli_close($conn);

실시 예 (PDO)

$conn = null;