我已經看過許多遍了 - 只是想澄清(我覺得我很困惑)預處理語句和逃避
我轉向今天的mysqli,並使用預處理語句開始。我事先準備好的聲明
function read($table, $var) {
if($stmt = mysqli_prepare($link, "SELECT * FROM ? WHERE `uid`=?")) {
mysqli_stmt_bind_param($stmt, "si", $table, $var);
mysqli_stmt_execute($stmt);
return mysqli_fetch_assoc($stmt);
} else {
echo '<script type="text/javascript>">alert("Something went wrong");</script>';
}
}
$info = read("users", $_SESSION['uid']);
$char = read("characters", $_SESSION['uid']);
我還需要逃避任何東西
實例?我知道,我知道,我已經在任何地方閱讀過,當使用準備好的陳述時,你不需要逃避,但是有如this和this這樣的問題讓我很擔心。
是否需要注射? – Wulf
如果** downvoter **可以解釋如何'tableName'可以被參數化,我會刪除這個答案。 –
請參閱[可以PHP PDO語句接受表名作爲參數?](http://stackoverflow.com/questions/182287/can-php-pdo-statements-accept-the-table-name-as-parameter)和[哪些標記可以在PDO準備語句中參數化?](http://stackoverflow.com/questions/1622521/which-tokens-can-be-parameterized-in-pdo-prepared-statements) –