PHP8 PDO::__construct

2024-03-22 09:27 更新

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::__construct — 創(chuàng)建一個(gè)表示數(shù)據(jù)庫連接的 PDO 實(shí)例

說明

public PDO::__construct(
    string $dsn,
    ?string $username = null,
    ?string $password = null,
    ?array $options = null
)

創(chuàng)建一個(gè)表示連接到請求數(shù)據(jù)庫的數(shù)據(jù)庫連接 PDO 實(shí)例。

參數(shù) ?

dsn

數(shù)據(jù)源名稱或叫做 DSN,包含了請求連接到數(shù)據(jù)庫的信息。

通常,一個(gè) DSN 由 PDO 驅(qū)動名、緊隨其后的冒號、以及具體 PDO 驅(qū)動的連接語法組成。更深入的信息能從 PDO 具體驅(qū)動文檔找到。

dsn 參數(shù)支持三種不同的方式 創(chuàng)建一個(gè)數(shù)據(jù)庫連接:

驅(qū)動程序調(diào)用

dsn 包含完整的DSN。

URI invocation

dsn 由 uri: 后跟 URI 組成,該 URI 包含定義 DSN 字符串的文件位置。URI 可以指定本地文件或遠(yuǎn)程 URL。

uri:file:///path/to/dsnfile

Aliasing

dsn 由映射到 php.ini 中定義 DSN 字符串的 pdo.dsn.name 的 name 名組成。

注意:

別名必須得在 php.ini 中定義了,不能是在 .htaccess 或 httpd.conf 中 。

username

DSN字符串中的用戶名。對于某些PDO驅(qū)動,此參數(shù)為可選項(xiàng)。

password

DSN字符串中的密碼。對于某些PDO驅(qū)動,此參數(shù)為可選項(xiàng)。

options

一個(gè)具體驅(qū)動的連接選項(xiàng)的鍵=>值數(shù)組。

錯(cuò)誤/異常 ?

如果試圖連接到請求的數(shù)據(jù)庫失敗,無論當(dāng)前設(shè)置了哪個(gè) PDO::ATTR_ERRMODE,PDO::__construct() 拋出 PDOException。

示例 ?

示例 #1 通過驅(qū)動程序調(diào)用創(chuàng)建 PDO 實(shí)例

<?php
/* Connect to a MySQL database using driver invocation */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

$dbh = new PDO($dsn, $user, $password);

?>

示例 #2 通過 URI 調(diào)用創(chuàng)建 PDO 實(shí)例

以下示例假定該文件存在并具有文件權(quán)限 使 PHP 能夠讀取文件。該文件包含 PDO DSN 到 通過 PDO_ODBC 驅(qū)動程序連接到 DB2 數(shù)據(jù)庫:/usr/local/dbconnect

odbc:DSN=SAMPLE;UID=john;PWD=mypass

PHP 腳本可以簡單的傳遞指向文件 URI 的 參數(shù)來創(chuàng)建數(shù)據(jù)庫連接: uri:

<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';

$dbh = new PDO($dsn, $user, $password);

?>

示例 #3 使用別名創(chuàng)建一個(gè)PDO實(shí)例

以下示例假定包含以下內(nèi)容 條目以啟用與 MySQL 數(shù)據(jù)庫的連接,僅使用 別名:php.inimydb

[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
<?php
/* 使用別名連接到 ODBC 數(shù)據(jù)庫 */
$dsn = 'mydb';
$user = '';
$password = '';

$dbh = new PDO($dsn, $user, $password);

?>


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號