PHP 5 이상은 다음을 사용하여 MySQL 데이터베이스와 작업 할 수 있습니다.
- MySQLi 확장 (the “i” stands for improved )
- PDO (PHP Data Objects)
이전 버전의 PHP는 MySQL 확장을 사용했습니다. 그러나 이 확장 프로그램은 2012년 이후 사용되지 않습니다.
MySQLi 또는 PDO를 사용해야합니까?
짧은 대답이 필요한 경우 “당신이 좋아하는 아무거나”가 됩니다.
MySQLi와 PDO 모두 장점이 있습니다.
PDO는 12 개의 다른 데이터베이스 시스템에서 작동하지만 MySQLi는 MySQL 데이터베이스에서만 작동합니다.
따라서 다른 데이터베이스를 사용하도록 프로젝트를 전환해야하는 경우 PDO는 프로세스를 쉽게 만듭니다. 연결 문자열과 몇 가지 쿼리 만 변경하면됩니다. MySQLi를 사용하면 포함 된 쿼리 전체를 다시 작성해야합니다.
두 가지 모두 객체 지향이지만 MySQLi는 procedural API도 제공합니다.
둘 다 Prepared Statements를 지원합니다. Prepared Statements는 SQL Injection을 방지하며 웹 응용 프로그램 보안에 매우 중요합니다.
MySQLi와 PDO Syntax에서의 MySQL 예제
이 장과 다음 장에서는 PHP와 MySQL을 사용하는 세 가지 방법을 설명합니다.
- MySQLi (객체 지향)
- MySQLi (절차 적 procedura )
- 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 객체 지향)
<?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";
?>
PHP는 놀랍고 대중적인 언어입니다!
위의 객체 지향 예제에 대한 참고 : PHP 5.2.9 및 5.3.0까지 $ connect_error가 중단되었습니다. 5.2.9 및 5.3.0 이전의 PHP 버전과의 호환성을 보장하려면 다음 코드를 대신 사용하십시오.
// 연결 확인 if (mysqli_connect_error ()) { die ( “데이터베이스 연결에 실패했습니다 :”mysqli_connect_error ()); }
예제 (MySQLi 절차)
<?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 예제에서는 데이터베이스 (myDB) 도 지정했습니다 . PDO는 연결할 수있는 유효한 데이터베이스가 필요합니다. 데이터베이스를 지정하지 않으면 예외가 발생합니다.
연결 종료
스크립트가 끝나면 연결이 자동으로 닫힙니다. 이전에 연결을 닫으려면 다음을 사용하십시오.
예제 (MySQLi 객체 지향)
$conn->close();
예제 (MySQLi 절차)
mysqli_close($conn);
예 (PDO)
$conn = null;