Использовать prepared statement.
Подготовленные заявления могут помочь увеличить безопасности путем отделения SQL логики от данных подается. Это разделение логики и данных может помочь предотвратить очень распространенный тип уязвимости , вызванный SQL-инъекцией атака. Обычно, когда вы имеете дело с с запросом ad hoc, вы должны быть очень осторожны при обращении с данными , которые вы получили от пользователя. Это влечет за собой использование функций, которые выходят из всех необходимых проблем символов, таких как одиночная кавычка, двойная кавычка и обратная косая черта символов. Это необязательно, если имеет отношение к подготовленным операторам. Разделение данных позволяет MySQL автоматически учитывать эти символы , и они не обязательно должны быть экранированы с использованием любой специальной функции.
Быстрый пример,
$db = new mysqli('localhost', 'username', 'password', 'db');
$stmt = $db->prepare("INSERT INTO mytable (text_column) VALUES (?)");
$stmt->bind_param("s", $mytext); // s = string, b = boolean, i = int, etc
$stmt->execute();
...
Хороший совет для использования подготовленных операторов, но старое расширение mysql для PHP не поддерживает их. Вы должны использовать MySQLi или PDO_MySQL. –
Хорошее место, я пропустил «я». Я обновил ответ, спасибо. –