使用預處理語句(查詢)保存從客戶端接收到的數據。例如:如果我正在處理已保存的數據,是否應該使用預處理語句
if ($stmt = $mysqli->prepare("INSERT INTO table_1 VALUES (?, ?, ?);"))
{
$stmt->bind_param(/* data */);
$stmt->execute();
// ...
}
如果在某個時間點之後我想要使用客戶端的數據,我必須再次使用準備好的語句嗎?是否有使用經典查詢的風險?例如:
if ($stmt = $mysqli->prepare("SELECT * FROM table_2 WHERE something = ?;")
{
$stmt->bind_param("s", /* Selected value from the `table_1` */);
$stmt->execute();
// ...
}
如果沒有用戶交互,則不必使用準備語句。 – Anam
在第一個例子中是用戶交互,但在第二個例子中,我正在處理已經從客戶端保存的數據......這樣保存的數據足夠安全嗎?我不必使用準備好的陳述/清理數據?我理解它嗎? – 0101
是你旁邊的其他人能夠訪問數據嗎?如果是的話,你應該使用準備聲明,否則你不必。 – Anam