Ответ 1
Вы должны использовать подготовленные инструкции и передавать строковые данные в качестве параметра, но вы не должны его избегать.
Этот пример взят из документации:
/* create a prepared statement */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
/* bind parameters for markers */
$stmt->bind_param("s", $city);
/* execute query */
$stmt->execute();
/* bind result variables */
$stmt->bind_result($district);
/* fetch value */
$stmt->fetch();
printf("%s is in district %s\n", $city, $district);
/* close statement */
$stmt->close();
}
Обратите внимание, что пример не вызывает mysqli_real_escape_string
. Вам нужно было бы использовать mysqli_real_escape_string
, если бы вы вставляли строку непосредственно в запрос, но я бы посоветовал вам никогда этого не делать. Всегда используйте параметры, когда это возможно.
Похожие