如何從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);
$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中文網其他相關文章!