我已經閱讀了很多使用 MySQL 的 PHP sql 示例。我經常看到這樣的查詢,其中包含值的占位符:
$query = “INSERT INTO users
(username, firstname, lastname, salutation, countrycode)
VALUES(:1, :2, :3, :4, :5)”;
注意值是:1等:2。
我在 PHP 中為 postgres 使用標準 PHP 模塊。我的查詢注入變數名稱如下:
$query = “INSERT INTO users(username)
VALUES($hello)”;
如何在 PHP 中使用與 postgres 相同的安慰劑技術?可能嗎?
uj5u.com熱心網友回復:
準備好的查詢導致兩次資料庫通信往返而不是一次:一次用于準備,一次用于執行。如果你想多次重用同一個查詢,但只決議一次,它們會更快,但如果你想使用一次查詢,它們會更慢。基本上,準備好的查詢是您問題的錯誤答案;正確答案是引數化查詢。
$result = pg_query_params($dbconn,
'SELECT * FROM users WHERE first_name = $1 AND last_name=$2',
array($firstname,$lastname));
這個特定于 pg 的函式進行引數化查詢,其中 $number 形式的占位符被陣列中具有相應從 1 索引的引數替換。引數處理得當,不存在SQL注入風險。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/522614.html
