>  기사  >  백엔드 개발  >  PHP 데이터베이스 학습: PDO를 사용하여 데이터베이스에 연결하는 방법은 무엇입니까?

PHP 데이터베이스 학습: PDO를 사용하여 데이터베이스에 연결하는 방법은 무엇입니까?

WBOY
WBOY원래의
2021-10-28 10:43:475731검색

이전 글에서 "PHP 데이터베이스 학습에서 쿼리 결과의 행 수를 구하는 방법은?"을 가져왔습니다. 》에서는 PHP 데이터베이스에서 쿼리 결과의 행 수를 얻는 방법을 자세히 소개합니다. 이번 글에서는 PHP에서 PDO 관련 지식을 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다!

PHP 데이터베이스 학습: PDO를 사용하여 데이터베이스에 연결하는 방법은 무엇입니까?

PHP 데이터베이스 학습에 대한 이전 기사에서는 PHP의 mysqli 클래스에 대한 몇 가지 관련 지식을 소개했습니다. 그중 mysqli는 현재로서는 MySQL 데이터베이스만 지원할 수 있다는 것을 알고 있습니다. 다른 데이터베이스에 연결하려면 어떻게 해야 할까요? 무슨 뜻입니까? 이번에는 PDO 클래스인 또 다른 데이터베이스 관련 클래스를 PHP에 도입해야 합니다. 다음에 살펴보겠습니다.

PDO란 무엇입니까

PDO는 PHP 데이터 객체의 약자입니다. 정확히 말하면 PDO는 데이터베이스에 액세스하기 위해 PHP에서 정의한 인터페이스입니다. 동일한 기능을 통해 쿼리를 수행하고 데이터를 얻을 수 있습니다. 제공합니다. 이 인터페이스는 가볍고 일관성이 있으며, 어떤 데이터베이스를 사용하든 동일한 기능을 통해 액세스하고 실행할 수 있습니다. 이러한 작업은 데이터베이스 작업을 크게 단순화하며 데이터베이스의 다양한 차이점을 기반으로 변경할 필요가 없습니다.

이 경우 PDO를 사용하면 더 이상 mysqli_* 의 일련의 기능을 사용할 필요가 없습니다. 데이터베이스를 작동하기 위해 PDO의 메소드만 사용하면 됩니다. mysqli_* 的一系列函数了,只需要使用 PDO 中的方法就可以对数据库进行操作。

我们可以将 PDO 看作是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口。PDO 将通过一种轻型、清晰、方便的函数,统一各种不同的数据库的共有特性,实现 PHP 脚本在最大程度上的抽象性和兼容性。

PDO 扩展是模块化的,能够在运行时为用户数据库后端加载驱动程序,而不必重新编译或重新安装整个 PHP 程序。

怎样开启PDO

在默认情况下,PDO 在 PHP 中是开启的状态,但是有些对某个数据库的驱动程序想要启动的话,还是要进行相应的开启操作。

下面我们以windows为例,在php.ini配置文件中找到PDO的相关配置信息:

PHP 데이터베이스 학습: PDO를 사용하여 데이터베이스에 연결하는 방법은 무엇입니까?

其中想要开启相应的配置只需要去除配置项前面的分号;,然后重启 Apache 服务器即可。

配置完成后可以通过phpinfo()来查看是否开启成功,示例如下:

<?php
phpinfo();
?>

在输出结果中可以查询到如下结果:

PHP 데이터베이스 학습: PDO를 사용하여 데이터베이스에 연결하는 방법은 무엇입니까?

如此我们便通过php.ini配置文件开启了PDO,既然已经开启了pdo,下面就是要怎样去连接数据库了,那接下来我们来看一下PHP中怎样使用PDO来连接数据库。

PHP使用PDO连接数据库

PHP想要使用PDO连接数据库就是要与不同的数据库进行交互,这时候PDO对象中的成员方法时同意各种数据库的访问接口,以达到和不同的数据库进行交互的目的。所以在使用PDO与数据库交互之前我们首先要先创建一个PDO对象,然后通过对象的构造函数来连接数据库。这个构造函数的语法格式如下:

PDO::__construct(string $dsn[, string $username [, string $password [, array $driver_options]]])

其中需要注意的是:

  • $dsn   表示数据源名称或叫做 DSN,其中包含了请求连接到数据库的信息。通常一个 DSN 是由 PDO 驱动程序的名称,后面加上一个冒号,再后面是可选的驱动程序的数据库连接信息。

  • $username   表示可选参数,用来表示 DSN 字符串中的用户名;

  • $password   表示可选参数,用来表示 DSN 字符串中的密码;

  • $driver_options 

    PDO를 다양한 데이터베이스의 액세스 인터페이스를 통합하는 역할을 하는 "데이터베이스 액세스 추상화 계층"으로 생각할 수 있습니다. PDO는 가볍고 명확하며 편리한 기능을 통해 다양한 데이터베이스의 공통 기능을 통합하여 PHP 스크립트의 최고의 추상화 및 호환성을 달성합니다.
PDO 확장은 모듈식이며 전체 PHP 프로그램을 다시 컴파일하거나 다시 설치할 필요 없이 런타임 시 사용자 데이터베이스 백엔드용 드라이버를 로드할 수 있는 기능을 갖추고 있습니다.


PDO 활성화 방법

🎜🎜🎜기본적으로 PDO는 PHP에서 활성화되어 있지만 특정 데이터베이스에 대해 일부 드라이버를 활성화하려면 해당 열기 작업을 수행해야 합니다. 🎜🎜창을 예로 들어 php.ini 구성 파일에서 PDO의 관련 구성 정보를 찾아보겠습니다. 🎜🎜PHP 데이터베이스 학습: PDO를 사용하여 데이터베이스에 연결하는 방법은 무엇입니까?🎜🎜해당 구성을 활성화하려면 앞에 있는 세미콜론만 제거하면 됩니다. 구성 항목 ;를 선택한 다음 Apache 서버를 다시 시작하십시오. 🎜🎜구성이 완료된 후 <code>phpinfo()를 사용하여 성공적으로 열렸는지 확인할 수 있습니다. 🎜
<?php
/* 通过调用驱动程序创建一个PDO实例 */
$dsn = &#39;mysql:dbname=testdb;host=127.0.0.1&#39;;
$user = &#39;dbuser&#39;;
$password = &#39;dbpass&#39;;
try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo &#39;Connection failed: &#39; . $e->getMessage();
}
?>
🎜출력 결과에서 다음 결과를 확인할 수 있습니다. 🎜 🎜🎜PHP 데이터베이스 학습: PDO를 사용하여 데이터베이스에 연결하는 방법은 무엇입니까?🎜🎜그래서 php.ini 구성 파일 PDO를 통해 이를 활성화했습니다. 이제 pdo가 활성화되었으므로 다음은 데이터베이스에 연결하는 방법입니다. 다음으로 PDO를 사용하여 PHP에서 데이터베이스에 연결하는 방법을 살펴보겠습니다. 🎜🎜🎜🎜PHP는 PDO를 사용하여 데이터베이스에 연결합니다. 🎜🎜🎜🎜🎜PHP는 PDO를 사용하여 데이터베이스에 연결하여 다른 데이터베이스와 상호 작용하려고 합니다. 이때 PDO 개체의 멤버 메서드는 다음의 액세스 인터페이스와 일치합니다. 달성해야 할 다양한 데이터베이스와 서로 다른 데이터베이스 간의 상호 작용 목적. 따라서 PDO를 사용하여 데이터베이스와 상호 작용하기 전에 먼저 PDO 객체를 생성한 다음 객체 생성자를 통해 데이터베이스에 연결해야 합니다. 이 생성자의 구문 형식은 다음과 같습니다. 🎜🎜
<?php
    $dsn  = &#39;C:\Users\Administrator\Desktop.028\dsn.txt&#39;;
    $user = &#39;root&#39;;
    $pwd  = &#39;root&#39;;
    try{
        $obj = new PDO($dsn,$user,$pwd);
    }catch(PDOException $e){
        echo &#39;数据库连接失败:&#39;.$e -> getMessage();
    }
?>
🎜다음 사항에 유의해야 합니다. 🎜🎜
  • 🎜$dsn 데이터를 나타냅니다. 소스 이름(DSN)에는 데이터베이스 연결 요청에 대한 정보가 포함됩니다. 일반적으로 DSN은 PDO 드라이버 이름, 콜론, 선택적으로 드라이버의 데이터베이스 연결 정보로 구성됩니다. 🎜🎜
  • 🎜$username은 DSN 문자열에서 사용자 이름을 나타내는 데 사용되는 선택적 매개변수를 나타냅니다. 🎜🎜
  • 🎜$password 는 선택적 매개변수를 나타냅니다. , DSN 문자열에서 비밀번호를 나타내는 데 사용됩니다. 🎜🎜
  • 🎜$driver_options 는 특정 드라이버에 대한 연결 옵션의 키/값 배열인 선택적 매개변수를 나타냅니다. 🎜🎜🎜🎜PDO 객체를 생성하기 위해 다양한 방법으로 생성자 메서드를 호출할 수 있습니다. 생성자 메서드를 호출하는 다양한 방법을 소개하기 위해 MySQL 데이터베이스에 연결하는 것을 예로 들어보겠습니다. 🎜🎜예는 다음과 같습니다.🎜🎜
    <?php
    /* 通过调用驱动程序创建一个PDO实例 */
    $dsn = &#39;mysql:dbname=testdb;host=127.0.0.1&#39;;
    $user = &#39;dbuser&#39;;
    $password = &#39;dbpass&#39;;
    try {
        $dbh = new PDO($dsn, $user, $password);
    } catch (PDOException $e) {
        echo &#39;Connection failed: &#39; . $e->getMessage();
    }
    ?>

    上述示例中,将参数嵌入到构造函数中,在 DSN 字符串中加载 mysql 驱动程序并指定了两个可选参数:第一个是数据库名称,第二个是数据库地址。其他的驱动程序会同样以不同的方式解释它的 DSN,如果无法加载驱动程序,或者发生了连接失败,则会抛出一个 PDOException,以便可以决定如何最好地处理该故障。

    其中的参数也可以储存在一个本地或者远程的文件中,然后在构造函数中引用这一文件,示例如下:

    首先在本地的文件中创建一个dsn.txt的文件,其中的内容和路径如下:

    PHP 데이터베이스 학습: PDO를 사용하여 데이터베이스에 연결하는 방법은 무엇입니까?

    PHP 데이터베이스 학습: PDO를 사용하여 데이터베이스에 연결하는 방법은 무엇입니까?

    然后输入示例如下:

    <?php
        $dsn  = &#39;C:\Users\Administrator\Desktop\1.0\1028\dsn.txt&#39;;
        $user = &#39;root&#39;;
        $pwd  = &#39;root&#39;;
        try{
            $obj = new PDO($dsn,$user,$pwd);
        }catch(PDOException $e){
            echo &#39;数据库连接失败:&#39;.$e -> getMessage();
        }
    ?>

    由此我们便通过吧擦书储存在文件里,然后通过构造函数完成了数据库的调用。

    大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

위 내용은 PHP 데이터베이스 학습: PDO를 사용하여 데이터베이스에 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.