Как вставить обратную косую черту (\) в строку со специальными символами в ней перед сохранением в БД mysql
Я попытался использовать команду addlashes() в моем сценарии php. Но эта функция не добавляет backslash() перед специальными символами в строке.
Есть ли другой способ вставить \ перед специальными символами в строке?
Вот мой код:
function save_params() {
global $order_status;
$args = func_get_args();
foreach ($args as $k => $param)
if (isset($_REQUEST[$param]))
$order_status[$param] = mysql_real_escape_string("$_REQUEST[$param]");
else
$order_status[$param] = null;
}
Из приведенного выше кода title - это строка, предоставленная пользователем. Это может иметь специальные символы в нем. Я предоставил строку mysql_real_escape для экранирования специальных символов в ней. Пока здесь все в порядке. Но проблема в том, что я использую всплывающую подсказку javascript для наведения названия продукта. Функция для всплывающей подсказки представлена ниже:
class="notfree{$g->id}"
onmouseover = "tooltip.show('{$w->title}');"
onmouseout="tooltip.hide();"
$ w-> title - это заголовок, который мы сохранили в БД со специальными строками. Функция Tooltip.show не отображает наведение со специальными символами в заголовке. поэтому я хочу добавить обратную косую черту для специальных символов в "заголовке" перед входом в базу данных.
Пожалуйста, помогите мне.. я застрял здесь
2 ответа
Использование mysqli_real_escape_string()
или же mysqli::real_escape_string()
,
Или еще лучше, используйте подготовленные заявления с mysqli
или же PDO
,
Используйте mysqli_real_escape_String - http://php.net/manual/en/mysqli.real-escape-string.php. Лучший способ - использовать подготовленные операторы с mysqli или PDO