У меня есть следующий код:Должен ли я использовать mysql_real_escape_string, если я связываю параметры?
function dbPublish($status)
{
global $dbcon, $dbtable;
if(isset($_GET['itemId']))
{
$sqlQuery = 'UPDATE ' . $dbtable . ' SET active = ? WHERE id = ?';
$stmt = $dbcon->prepare($sqlQuery);
$stmt->bind_param('ii', $status, $_GET['itemId']);
$stmt->execute();
$stmt->close();
}
}
Мне нужно mysql_real_escape_string в этом случае или я хорошо делать?
Обратите внимание, что только параметры не защищены от SQL-инъекций; любая переменная, интерполированная непосредственно в строку запроса (например, '$ dbtable'), является потенциальным вектором, если его значение исходит от пользовательского ввода. Конечно, такие вещи, как имена таблиц и столбцов, никогда не должны поступать непосредственно из пользовательского ввода. – outis