У меня есть стандартное поле ввода текста.Он получает значение от $_POST
, и я использую его для построения запроса SQL (ODBC, а не только MySQL, если это имеет значение (или, например, я не могу использовать mysql_escape_string ())).
Запрос, который я создаю, имеет одинарные кавычки на PHP и двойные кавычки на SQL.Например:
$sql = 'SELECT * FROM ' . $table . ' WHERE field="' . $_POST['some_field'] . '"";
Если пользователь вводит двойные кавычки в свои входные данные, например, 6" wrench
, я получаю ошибку SQL для несбалансированной строки (одинарная кавычка, как в O'reilly
, не создает проблем).
Какой правильный способ справиться с этим?Опять же, Я использую интерфейс ODBC, а не MySQL .
Это просто вопрос addslashes()
?Или волшебные цитаты?
Обновление: В руководстве PHP говорится о магических кавычках ...
Эта функция устарела с PHP 5.3.0.Полагаться на эту функцию крайне не рекомендуется.
(не то, чтобы они предлагали альтернативу; фактически, это также говорит о том, что магические кавычки будут отброшены в PHP 6)
Если ответиспользовать готовые заявления?