MySQL 準備語句:超越轉義
雖然手動轉義是防止 SQL 注入的常見方法,但它可能容易出錯。 PDO(PHP 資料物件)在標準 MySQL 中提供了強大的替代方案。
PDO 確保所有資料庫輸入都被視為文本,因此無需手動轉義。這種方法與用於資料顯示的適當 HTML 實體編碼相結合,提供了針對注入的堅實防禦。
要與 PDO建立資料庫連接,請建立資料庫物件:
<code class="php">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(); }</code>
準備查詢,使用準備方法:
<code class="php">$stmt = $db->prepare('SELECT * FROM Table WHERE id = ?');</code>
使用bindParam將值綁定到查詢的佔位符方法:
<code class="php">$stmt->bindParam(1, $id);</code>
使用execute方法執行查詢:
<code class="php">$stmt->execute();</code>
PDO提供許多優點:
記住始終使用 PDO 進行資料庫連接,並將其與適當的 HTML 實體編碼相結合以確保資料安全處理。 PDO 提供了一種強大且有效的方法來保護您的應用程式免受 SQL 注入。
以上是除了手動轉義之外,PDO 如何增強 MySQL 安全性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!