首頁 > 後端開發 > php教程 > 如何在 SQL 中的預準備語句中安全地使用 LIKE '%{Var}%'?

如何在 SQL 中的預準備語句中安全地使用 LIKE '%{Var}%'?

Susan Sarandon
發布: 2024-12-15 12:02:11
原創
549 人瀏覽過

How Can I Safely Use LIKE '%{Var}%' with Prepared Statements in SQL?

有效利用帶有LIKE '%{Var}%' 的預準備語句

在SQL 查詢中使用經過淨化的使用者輸入時,建議使用使用準備好的語句來降低SQL 注入攻擊的風險。但是,在準備好的語句中使用 LIKE '%{Var}%' 模式可能會帶來挑戰。

不正確的方法:

以下語法將生成錯誤:

$sql = 'SELECT * FROM `users` WHERE username LIKE \'%{?}%\' ';
登入後複製
$sql = 'SELECT * FROM `users` WHERE username LIKE %{?}% ';
登入後複製

正確方法:

要在準備好的語句中正確使用LIKE '%{Var}%',請依照下列步驟操作:

  1. 建立字串變數來儲存LIKE 模式:
$likeVar = "%" . $ yourParam . "%";
登入後複製
  1. 使用下列指令準備查詢placeholder:
$ stmt = $ mysqli -> prepare('SELECT * FROM REGISTRY WHERE name LIKE ?');
登入後複製
  1. 將LIKE 變量綁定到佔位符:
$stmt -> bind_param('s', $likeVar);
登入後複製
  1. 執行查詢:
$stmt -> execute();
登入後複製

解釋:

  • $likeVar:此變數包含LIKE模式,使用者提供的參數前綴和後綴為通配符。
  • prepare() 與 query(): prepare() 建立一個可以使用不同參數多次執行的語句對象,而 query() 直接執行查詢。
  • bind_param():此方法將準備好的語句參數與其各自的變數值關聯起來。在本例中,佔位符 (?) 綁定到 $likeVar。
  • execute():綁定參數後,execute() 將使用指定參數執行查詢。

透過執行這些步驟,您可以在 SQL 查詢中安全地使用 LIKE '%{Var}%',同時維護安全最佳實務。

以上是如何在 SQL 中的預準備語句中安全地使用 LIKE '%{Var}%'?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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