MySQL 準備語句:超越轉義
MySQL 準備語句:超越轉義
雖然手動轉義是防止 SQL 注入的常見方法,但它可能容易出錯。 PDO(PHP 資料物件)在標準 MySQL 中提供了強大的替代方案。 PDO 確保所有資料庫輸入都被視為文本,因此無需手動轉義。這種方法與用於資料顯示的正確 HTML 實體編碼相結合,提供了針對注入的堅實防禦。try {
$db = new PDO("mysql:host=[hostname];dbname=[database]", '[username]', '[password]');
$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES utf8");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->exec('SET NAMES utf8');
} catch (PDOException $e) {
echo $e->getMessage();
}
try {
$db = new PDO("mysql:host=[主機名稱];dbname=[資料庫]", '[使用者名稱]', '[密碼]');
$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "設定名稱 utf8");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->xec('設定名稱 utf8');
} catch (PDOException $e) {
迴聲 $e->getMessage();
}$stmt = $db->prepare('SELECT * FROM Table WHERE id = ?');
$stmt = $db->prepare('SELECT * FROM Table WHERE id = ?');$stmt->bindParam(1, $id);
$stmt->bindParam(1, $id);$stmt->execute();
$stmt-> execute();提供全面的錯誤處理功能。
請記住始終使用 PDO 進行資料庫連接,並將其與適當的 HTML 實體編碼結合起來安全的資料處理。 PDO 提供了一種強大且有效的方法來保護您的應用程式免受 SQL 注入。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3