Нужно ли указывать PDO в заявлении IF? - PullRequest
0 голосов
/ 23 июня 2018

В соответствии с тем, как вики: Это как предотвратить внедрение SQL в PHP.

Я просто хочу спросить, действительно ли нужно начинать с выражения if?

$name = $_GET['username'];

if ($stmt = $mysqli->prepare("SELECT password FROM tbl_users WHERE name=?")) {

    // Bind a variable to the parameter as a string. 
    $stmt->bind_param("s", $name);

    // Execute the statement.
    $stmt->execute();

    // Get the variables from the query.
    $stmt->bind_result($pass);

    // Fetch the data.
    $stmt->fetch();

    // Display the data.
    printf("Password for user %s is %s\n", $name, $pass);

    // Close the prepared statement.
    $stmt->close();

}

1 Ответ

0 голосов
/ 23 июня 2018

SQL-инъекция будет невозможна, если вы используете подготовленные операторы, независимо от того, заключаете ли вы вызов функции в оператор if или нет.

Согласно документации , mysqli::prepare возвращает false, если во время выполнения произошла ошибка.Оператор if предназначен для обнаружения этого, если возвращаемое значение равно false, он не пытается продолжить выполнение запроса и использование его результата (так как это приведет к сбою или приведет к неверным результатам).

Между прочим, PDO является альтернативой семейству mysqli и не встречается в вашем вопросе (так что название немного вводит в заблуждение).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...