Итак, я начал использовать расширение MySQLi, так как слышал, что оно будет поддерживаемым в будущем.Я читал об этом вместо использования mysql_real_escape_string()
. Я должен использовать prepare()
по соображениям безопасности, например, когда я использую $ _GET или $ _POST в своем запросе.
Это правда?Я вижу, что prepare () хорош для создания шаблонов запросов SQL, где я могу изменять параметры.Таким образом, сценарий также может быть динамическим на уровне SQL.Это действительно полезно.Но я не могу найти реальную информацию о его мерах безопасности.Неужели это действительно помогает избежать зла и защищает от уколов?Или мне приходится иметь дело с этим на уровне программирования?
Например, этот код безопасен?Как вы можете видеть, используйте $_GET
для заполнения шаблона, так что это может быть очень опасно, если подготовка MySQLi не работает так, как я хочу.
$stmt = $mysqli->prepare('SELECT description,title FROM menu WHERE name = ?');
$stmt->bind_param('s', $n);
$n = $_GET['b'];
$stmt->bind_result($meta_description,$meta_title);
$stmt->execute();