首頁 > 資料庫 > mysql教程 > 如何從已棄用的 MySQL 函式遷移到 PDO for MySQL 和 MSSQL?

如何從已棄用的 MySQL 函式遷移到 PDO for MySQL 和 MSSQL?

Mary-Kate Olsen
發布: 2025-01-10 09:33:42
原創
488 人瀏覽過

How to Migrate from Deprecated MySQL Functions to PDO for MySQL and MSSQL?

將 MySQL 函式轉換為適用於 MySQL 和 MSSQL 的 PDO

MySQL 函數的棄用與替代方案

MySQL 函數擴充功能已棄用,將在未來版本中移除。建議使用 MySQLi 或 PDO_MySQL 擴充功能作為替代。與 MySQL 函數相比,MySQLi 和 PDO 提供了改進的安全性和功能。

實作 PDO

PDO (PHP Data Objects) 是用於存取資料庫的物件導向的 API。若要使用 PDO 連線到資料庫,請使用 PDO 建構函式建立新的 PDO 實例。

連接到 MySQL

$dsn = 'mysql:dbname=databasename;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

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

連接到 MSSQL

$dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename';
$user = 'dbuser';
$password = 'dbpass';

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

使用 PDO 執行查詢

PDO 使用預處理語句來防止 SQL 注入漏洞。預處理語句定義了一個具有命名或索引佔位符的 SQL 查詢,用於表示變數。

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
$preparedStatement = $dbh->prepare($SQL);
登入後複製

綁定變數

使用 bindParambindValue 將值綁定到預處理語句。

$preparedStatement->bindParam(':username', $username);
登入後複製

執行查詢

執行預處理語句以取得結果。

$preparedStatement->execute();
登入後複製

取得結果

PDO 提供了 fetchfetchAll 等方法,可以將結果作為陣列檢索。

while ($row = $preparedStatement->fetch()) {
    echo $row['ID'];
    echo $row['EMAIL'];
}
登入後複製

使用 PDO 連接類別

您可以建立一個 PDO 連線類別來簡化資料庫操作。

class Database {

    protected $connection;

    public function __construct($dsn, $user, $password) {
        $this->connection = new PDO($dsn, $user, $password);
    }

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

    public function prepare($SQL, $params = []) {
        $preparedStatement = $this->connection->prepare($SQL);
        $preparedStatement->execute($params);
        return $preparedStatement;
    }

}

// 使用方法:
$db = new Database($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'];
    echo $row['EMAIL'];
}
登入後複製

以上是如何從已棄用的 MySQL 函式遷移到 PDO for MySQL 和 MSSQL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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