MySQL 準備語句:使用 PDO 確保資料安全
擔心 MySQL 應用程式中的轉義函數和 SQL 注入漏洞? MySQL 準備好的語句功能可能無法使用,但這並不代表您必須在安全性上做出妥協。
PDO:安全替代方案
PHP 資料物件 ( PDO)是一個功能強大的函式庫,提供與資料庫互動的一致介面。使用 PDO,您可以連接到 MySQL 資料庫並將所有資料庫輸入視為文字字串,從而無需手動轉義。
使用PDO 連接到MySQL
To開始使用PDO,建立一個資料庫對象,如下所示:
$db = new PDO("mysql:host=[hostname];dbname=[database]", '[username]', '[password]');
將字元編碼設定為UTF-8:
$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES utf8"); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->exec('SET NAMES utf8');
執行準備語句
建立資料庫物件後,您現在可以執行準備語句:
$id = 1; $q = $db->prepare('SELECT * FROM Table WHERE id = ?'); $q->execute(array($id));
$q = $db->prepare('UPDATE Table SET Column_1 = ?, Column_2 = ? WHERE id = ?'); $q->execute(array('Value for Column_1', 'Value for Column_2', $id));
$q = $db->prepare('UPDATE Table SET Column_1 = ?, Column_2 = ? WHERE id = ?'); $q->execute(array('Value for Column_1', 'Value for Column_2', $id));
萬用字元搜尋:
$search = '約翰'; $q = $db->prepare('SELECT * FROM Table WHERE Column_1 LIKE ?'); $q->execute(array('%'.$search.'%'));
結論
透過使用PDO 和準備好的語句,您可以增強透過降低SQL 注入風險來確保MySQL 應用程式的安全性。憑藉其簡化的介面和強大的安全功能,PDO 是保護資料庫免受惡意攻擊不可或缺的工具。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3