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

Mary-Kate Olsen
發布: 2024-11-10 22:01:03
原創
957 人瀏覽過

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中文網其他相關文章!

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