PHP가 데이터베이스 (Mysql)에 연결하는 세 가지 방법과 그 차이점

머리말:

php5.3 버전 이후에는 데이터베이스에 연결하는 두 가지 방법이 있습니다. 하나는 mysqli를 통해, 다른 하나는 PDO를 통해, mysqli를 통해 데이터베이스에 연결하는 것은 두 가지 상황으로 나눌 수 있습니다 : mysqli (객체 지향) , mysqli (프로세스 지향)
즉, 세 가지 방법 :
1) mysql에 연결하는 PDO
2) 데이터베이스에 연결하는 mysqli (객체 지향)
3) 데이터베이스에 연결하는 mysqli (프로세스 지향)
(사실 연결 방법도 있습니다 : MySQL 확장을 사용합니다. 2012 년부터는 확장이 권장되지 않습니다.)

PDO 연결 예

phpinfo () 명령 (기본적으로 이미 설치되어있는 php7을 사용함)을 통해 php에 PDO가 설치되어 있는지 먼저 확인할 수 있습니다
. http://php.net/manual/en/pdo 웹 페이지를 참조하십시오. Installation.php
여기에 사진 설명 삽입
코드 예제 :

<?php
$servername = "localhost";
$username = "root";
$password = "root";
try {
    
    
    $conn = new PDO("mysql:host=$servername;dbname=jtsys",
        $username, $password);
    echo "连接成功";
}
catch(PDOException $e)
{
    
    
    
    echo $e->getMessage();
}
?>

(사용시 데이터베이스 사용자 이름과 비밀번호, 선택한 데이터베이스 이름 (dbname)을 변경해야합니다.

mysqli (객체 지향) 연결 예제

phpinfo () 명령 (기본적으로 이미 설치되어있는 php7을 사용함)을 통해 PHP에 mysqli가 설치되어 있는지 여부를 먼저 확인할 수 있습니다. 설치
되지 않은 경우 http://php.net/manual/en/mysqli 웹 페이지를 참조하십시오. Installation.php
여기에 사진 설명 삽입
코드 예제 :

<?php
$servername = "localhost";
$username = "root";
$password = "root";
// 创建连接
$conn =
new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
    
    
    die("连接失败: " . $conn->connect_error);
}
$dbname="jtsys";
mysqli_select_db($conn,$dbname);
echo "连接成功";
?>

데이터베이스에 연결하기위한 mysqli (프로세스 지향)

코드 예 :

<?php
$servername = "localhost";
$username = "root";
$password = "root";
// 创建连接
$conn = mysqli_connect($servername, 
$username, $password);
// 检测连接
if (!$conn) {
    
    
    die("Connection 
failed: " . mysqli_connect_error());
}
$dbname="jtsys";
mysqli_select_db($conn,$dbname);
echo "连接成功";
?>

세 가지의 차이점 :

1. 연결을 닫는 방법 :
PDO :

$conn = null;

MySQLi (객체 지향) :

$conn->close();

MySQLi (프로세스 지향) :

mysqli_close($conn);
  • PDO는 12 개의 서로 다른 데이터베이스에서 사용되며 MySQLi는 MySQL 데이터베이스 만 대상으로합니다.
  • 프로젝트에서 여러 데이터베이스간에 전환해야하는 경우 PDO를 사용하는 것이 좋습니다. 따라서 연결 문자열과 부서 쿼리 문만 수정하면됩니다. MySQLi를 사용하면 데이터베이스가 다른 경우 쿼리를 포함하여 모든 코드를 다시 작성해야합니다.
  • 둘 다 객체 지향적이지만 MySQLi는 API 인터페이스도 제공합니다.
  • 둘 다 준비된 진술을 지원합니다. 준비된 명령문은 웹 프로젝트의 보안에 매우 중요한 SQL 주입을 방지 할 수 있습니다.
    객체 지향과 프로세스 지향 MySQLi의 차이점 :
    많은 PHP 프로그래머는 객체 지향 바이 프로그래밍에 익숙하지 않으므로 mysqli 클래스 라이브러리는 이들이 사용할 du 메서드를 제공합니다. 이는 mysql 확장을 사용하여 mysqli로 빠르게 마이그레이션하는 일부 사용자에게도 편리합니다. 사실 mysqli_query ()는 객체 지향 호출 프로세스를 내부적으로 캡슐화합니다.

추천

출처blog.csdn.net/qq_45273552/article/details/109385470