如何用 PDO 取代 MySQL 函數:PHP 中的現代資料庫連線指南?

Barbara Streisand
發布: 2024-11-16 04:07:50
原創
928 人瀏覽過

How to Replace MySQL Functions with PDO: A Guide to Modern Database Connectivity in PHP?

如何用PDO 取代MySQL 函式

簡介:

My

Myd PHP 中,應替換為MySQLi 或PDO_MySQL 以實現資料庫連線。 PDO(PHP 資料物件)提供了一個現代的、物件導向的接口,用於存取多個資料庫。

連接到MySQL 和MSSQL 資料庫:

MySQL:

$dsn = 'mysql:dbname=database_name;host=localhost';
$user = 'username';
$password = 'password';

$dbh = new PDO($dsn, $user, $password);
登入後複製

$dsn = 'sqlsrv:Server=localhost;Database=database_name';
$user = 'username';
$password = 'password';

$dbh = new PDO($dsn, $user, $password);
登入後複製

執行查詢:

PDO 使用準備好的語句執行查詢,防止SQL 注入。

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
登入後複製

範例SQL:

// Prepare statement with array of named variables
$result = $dbh->prepare($SQL);
$result->execute([':username' => $username]);

// OR

// Prepare statement with named placeholder indicator
$result = $dbh->prepare($SQL);
$result->bindValue(':username', $username);
$result->execute();
登入後複製

執行查詢:

// Fetch a single row as an array
$row = $result->fetch();

// Fetch all rows as an array
$rows = $result->fetchAll();
登入後複製

取得結果:

使用輔助類:

class PDOConnection {
    public $connection;

    public function __construct($dsn, $username, $password) {
        $this->connection = new PDO($dsn, $username, $password);
        $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }

    public function query($SQL) {
        return $this->connection->query($SQL);
    }

    public function prepare($SQL, $params = []) {
        $result = $this->connection->prepare($SQL);
        $result->execute($params);
        return $result;
    }
}
登入後複製

要簡化資料庫交互,請考慮使用如下所示的類:

$db = new PDOConnection($dsn, $user, $password);

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
$result = $db->prepare($SQL, ['username' => $username]);

while ($row = $result->fetch()) {
    echo $row['ID'] . ' ' . $row['EMAIL'];
}
登入後複製
用法範例:

以上是如何用 PDO 取代 MySQL 函數:PHP 中的現代資料庫連線指南?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板