首頁 >後端開發 >php教程 >如何從已棄用的 MySQL 函數過渡到 PHP 中的 PDO?

如何從已棄用的 MySQL 函數過渡到 PHP 中的 PDO?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-10 22:01:031020瀏覽

How to Transition from Deprecated MySQL Functions to PDO in PHP?

如何從MySQL 函數轉換到PDO

已棄用的MySQL 函數

現代PHP 版本由於MySQL 函數的限制和安全性問題,不建議使用它們。相反,開發人員應該使用 PDO 或 MySQLi 擴充功能來提高資料庫連接性和安全性。

PDO 簡介

PDO 代表 PHP 資料對象,並為連接到不同的資料庫系統,包括MySQL和MSSQL。與 MySQL 函數不同,PDO 使用統一的接口,並透過準備好的語句提供更高的安全性。

連接到資料庫

MySQL 連線:

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

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

MS連線:

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

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

執行查詢

PDO 使用準備好的語句而不是純 SQL 字串來防止 SQL注入漏洞。準備好的語句是使用稍後綁定到變數的佔位符建構的。

命名佔位符:

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
$queryArguments = array(':username' => $username);
$result = $dbh->prepare($SQL);
$result->execute($queryArguments);

索引佔位符:

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = ?';
$bindParamResults = array($username);
$result = $dbh->prepare($SQL);
$result->bindParam(1, $bindParamResults[0]);
$result->execute();
取得結果

可以使用多種方法來取得結果,例如fetch() 和 fetchAll()。

$row = $result->fetch(PDO::FETCH_ASSOC);  // Returns an associative array
$allRows = $result->fetchAll(PDO::FETCH_ASSOC);  // Returns an array of associative arrays
範例PDO 類別

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn