PHP가 MySQL에 연결
PHP 5 이상에서는 다음 방법을 사용하여 MySQL에 연결하는 것이 좋습니다.
· MySQLi 확장("i"는 개선됨을 의미) )
· PDO(PHP 데이터 개체)
PHP 초기 버전에서는 MySQL 확장을 사용합니다. 그러나 이 확장은 2012년에 더 이상 사용되지 않습니다.
PDO란 무엇인가요?
은 데이터베이스를 운영하는 방식이고,
pdo는 데이터베이스를 운영하는 기능을 pdo 클래스로 캡슐화하고 그 동안에만 보안 검증을 수행하는 것이다.
PDO와 mysqli의 차이점:
MySQLi를 사용해야 할까요, PDO를 사용해야 할까요?
짧은 답변이 필요한 경우 "편한 방법을 사용하세요."
MySQLi와 PDO에는 각각의 장점이 있습니다.
PDO는 12개의 서로 다른 데이터베이스에서 사용되며 MySQLi는 MySQL 데이터베이스만 대상으로 합니다.
그래서 프로젝트가 여러 데이터베이스 사이를 전환해야 하는 경우 연결 문자열과 부서 쿼리문만 수정하면 되므로 PDO를 사용하는 것이 좋습니다. MySQLi를 사용하면 다른 데이터베이스를 사용하는 경우 쿼리를 포함한 모든 코드를 다시 작성해야 합니다.
둘 다 객체 지향이지만 MySQLi는 API 인터페이스도 제공합니다.
둘 다 준비된 진술을 지원합니다. 준비된 명령문은 SQL 주입을 방지할 수 있으며 웹 프로젝트 보안에 매우 중요합니다.
MySQLi 및 PDO가 MySQL 인스턴스에 연결
이 장과 다음 장에서는 다음 세 가지 방법을 사용하여 MySQL을 작동하는 PHP를 보여줍니다.
· MySQLi(객체 지향)
$mysqli = new mysqli('localhost','username','password','database');
· MySQLi(프로세스 지향) )
$mysqli = mysqli_connect('localhost','사용자 이름','비밀번호','데이터베이스');
· PDO
$pdo = 새 PDO(" mysql :host=localhost;dbname=database", '사용자 이름', '비밀번호');
MySQLi 설치
Linux 및 Windows: php5 mysql 패키지를 설치하면 대부분의 경우 MySQLi 확장이 자동으로 설치됩니다.
설치 세부 사항은 http://php.net/manual/en/mysqli.installation.php를 확인하세요.
phpinfo()를 통해 설치 성공 여부를 확인할 수 있습니다.
PDO 설치
설치 세부 사항은 http://http:/ /php .net/manual/en/pdo.installation.php
phpinfo()를 통해 설치 성공 여부를 확인할 수 있습니다:
MySQL에 연결
MySQL 데이터베이스에 액세스하기 전에 연결해야 합니다. 데이터베이스 서버:
인스턴스(MySQLi - 객체 지향)
$link = mysqli_connect('localhost', 'mysql_user', 'mysql_password');
세 매개변수는 다음과 같습니다.
· 서버 주소(도메인 이름, IP)
· 데이터베이스 사용자 이름(루트)
· 데이터베이스 비밀번호(비어 있음)
연결이 성공하면 데이터베이스 연결을 반환하고 그렇지 않으면 false를 반환합니다(연결 성공 여부를 사용자에게 묻는 판단에 사용할 수 있음)
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = new mysqli($servername, $username, $password); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; ?>
위의 객체 지향 예제 $ connect_error는 PHP 5.2.9 및 5.3.0에 추가되었습니다. 이전 버전과의 호환성이 필요한 경우 다음 코드 대체를 사용하십시오.
// 연결 감지
if (mysqli_connect_error()) {
die("Database 연결 실패: " . mysqli_connect_error());
}
인스턴스(MySQLi - 절차 지향)
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = mysqli_connect($servername, $username, $password); // 检测连接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "连接成功"; ?>
인스턴스(PDO)
<?php $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password); echo "连接成功"; } catch(PDOException $e) { echo $e->getMessage(); } ?>
위의 PDO 인스턴스에는 데이터베이스(myDB)를 지정했습니다. PDO는 연결 프로세스 중에 데이터베이스 이름을 설정해야 합니다. 지정하지 않으면 예외가 발생합니다.
데이터베이스 선택
$db_selected = mysqli_select_db($link, 'db_name');
두 개의 매개변수
• mysql_connect에서 반환된 데이터베이스 연결
• 데이터베이스 이름
성공하면 true를 반환하고 실패하면 false를 반환합니다
선택할 수도 있습니다 데이터베이스를 연결할 때 직접:
$link = mysqli_connect('localhost', 'mysql_user', 'mysql_password', 'db_name');
연결을 닫습니다
스크립트 실행 후 자동으로 연결이 종료됩니다. 다음 코드를 사용하여 연결을 닫을 수도 있습니다.
인스턴스(MySQLi - 객체 지향)
$conn->close();
인스턴스(MySQLi - 프로시저 지향)
mysqli_close($conn);
인스턴스(PDO)
$conn = null;
알림:
프로그램을 작성할 때 엉성하고 조심하지 않는 것이 프로그램 작성에 있어서 가장 큰 금기 사항입니다. 데이터 테이블 이름에 이름 오류나 쓰기 오류로 인해 오류나 기타 알 수 없는 오류가 발생할 수 있습니다. 그러므로 앞으로 코드를 작성할 때에는 조심해야 하며, 교만하거나 교만하지 않아야 좋은 코드를 작성하고 혼란을 피할 수 있습니다.