mysqli_real_escape_string другой способ его использования?

0

Я хочу знать, могу ли я использовать mysqli_real_escape_string на втором пути. Обычно я использую его следующим образом:

$name = $_POST['name'];
$nameSecure = mysqli_real_escape_string($name);
$sql = "SELECT * FROM persions WHERE firstname = {$name}";
$con->query($sql);

Но когда у меня есть больше $ _POST, я могу использовать mysqli_real_escape_string следующим образом:

$name = $_POST['name'];
$sql = "SELECT * FROM persions WHERE firstname = {$name}";
$con->query(mysqli_real_escape_string($sql));

Есть ли различия между этими двумя методами? Actualy, я не видел, чтобы кто-то использовал безопасный путь. Могу ли я использовать безопасный способ и есть ли какое-либо различие в безопасности между этими двумя методами?

  • 0
    Я бы так не поступил. Экранирование всей строки может вызвать больше проблем, чем оно того стоит.
  • 0
    Это сработало для вас? если это не сломано, не устанавливайте это!
Теги:
mysqli

1 ответ

0
Лучший ответ

Есть ли различия между этими двумя методами?

Да. Первый метод просто ускользает от строки $name а второй - для всей строки запроса.

Хотя это не проблема для вашего конкретного запроса, это может быть проблемой для запросов, таких как:

SELECT * FROM table WHERE name = 'string';

Поскольку mysqli_real_escape_string избежит кавычек, в результате чего mysqli_real_escape_string запрос:

SELECT * FROM table WHERE name = \'string\';

В соответствующей заметке я бы посоветовал вам прочитать о подготовленных заявлениях.

  • 0
    Имейте в виду, они могли бы использовать цикл foreach . Довольно много примеров, найденных в Интернете. Может быть, даже array_map() .
  • 0
    Какой цикл foreach ?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню