使用PDO建構函數連接資料庫及DSN詳解

黄舟
發布: 2023-03-07 17:16:02
原創
4437 人瀏覽過

使用PDO建構子連接資料庫及DSN詳解

#pdo是php5中新加入的資料庫抽象層,為了解決存取不同資料庫統一介面的問題。類似PEAR::DB類別和ADODB類別的操作,不過它是直接封裝再php擴充中,可以自由選擇使用。

在上一篇《什麼是PDO? PDO的概特點以及安裝PDO的方法》中,我們介紹了什麼是PDO,介紹了PDO的特點以及安裝,那麼我們這篇文章介紹PDO建構函數連接資料庫以及DSN詳情!

PDO建構子連接資料庫

在PDO中,要建立資料庫的連接需要實例化PDO 的建構函數,PDO建構子的語法格式如下:

_construct(string $dsn[,string $username[,string $password[,array $driver_options]]])
登入後複製

建構子的參數說明如下:

dsn:資料來源名稱,包含主機名稱連接埠號碼和資料庫名稱。

username:連接資料庫的使用者名稱。

password:連接資料庫的密碼。

driver_options:連接資料庫的其它選項。

那麼我們下面直接用實例講解,透過PDO連接MySQL 資料庫,具體程式碼如下:

<?php
header("Content-Type:text/html; charset=utf-8");    //设置页面的编码格式
$dbms = "mysql";                                  // 数据库的类型
$dbName ="php_cn";                                //使用的数据库名称
$user = "root";                                   //使用的数据库用户名
$pwd = "root";                                    //使用的数据库密码
$host = "localhost";                              //使用的主机名称
$dsn  = "$dbms:host=$host;dbName=$dbName ";       
try{                                             //捕获异常
    $pdo = new PDO($dsn,$user,$pwd);             //实例化对象
    echo  "PDO连接数据库成功";
}catch (Exception $e){
    echo $e->getMessage()."<br>";
}
登入後複製

頁面輸出的結果如下圖:

使用PDO建構函數連接資料庫及DSN詳解

注意:如果上面有的地方填錯了,會透過try catch語句拋出例外!

DSN詳解

#什麼是DSN?

 DSN是Data Source Name(資料來源名稱)的縮寫。 DSN提供連接資料庫所需的資訊。 PDO的DSN包括3部分:PDO驅動名稱(如:mysql、sqlite或pgsql)、冒號和驅動特定的語法。每種資料庫都有其特定的驅動語法。

使用不同的資料庫時,必須先明確資料庫伺服器是完全獨立與 PHP 的,是實體。但在實際的情況可能是資料庫伺服器與 Web伺服器不在同一台運算上,此時需要透過PDO連接資料庫時,就修改DSN中的主機名稱。

由於資料庫伺服器只是特定的連接埠上監聽連線請求。每個資料庫伺服器都有一個預設的連接埠號碼(MySQL 是3306),但是資料庫管理員可以對連接埠號碼進行修改,因此有可能 PHP找不到資料庫的連接埠號碼,此時就可以在 DSN中包含連接埠號碼。例如:

$dsn="mysql:host=127.0.0.1;port=3306;dbname=admin";
登入後複製

由於一個資料庫中可能同時擁有多個資料庫,所以透過DSN連接資料庫時,通常都會包含資料庫名稱,這樣可以確保連線的是使用者想要的資料庫,而不是其他的資料庫了!

關於使用PDO建構子連接資料庫和DSN詳解我們就介紹到這裡,大家可以在本地測試一下,那麼我們下面給大家介紹PDO中執行SQL語句的幾種方法,具體請閱讀《PDO中執行SQL語句的三種方法》!

以上是使用PDO建構函數連接資料庫及DSN詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!