The exact characters that are escaped by this function are the null byte (0), newline (\n), carriage return (\r), backslash (\), single quote ('), double quote (") and substiture (SUB, or \032).
mysql_escape_string
(PHP 4 >= 4.0.3, PHP 5)
mysql_escape_string — Экранирует строку для использования в mysql_query
Описание
Функция экранирует unescaped_string таким образом, после чего её можно безопасно использовать в mysql_query(). Данная функция устарела.
Функция идентична mysql_real_escape_string(), исключая тот факт, что mysql_real_escape_string() принимает параметром ещё и идентификатор соединения и экранирует строку с учетом текущей кодировки. mysql_escape_string() не делает этого и результат работы не зависит от кодировки, в который вы работаете с БД.
С версии PHP 5.3.0 эта функция считается УСТАРЕВШЕЙ. Крайне не рекомендуется полагаться на эту возможность.
Список параметров
- unescaped_string
-
Экранируемая строка.
Возвращаемые значения
Возвращает экранируемую строку.
Список изменений
| Версия | Описание |
|---|---|
| 5.3.0 | Данная функция теперь выдает предупреждение уровня E_DEPRECATED. |
| 4.3.0 | Функция помечена как устаревшая, ее не следует больше использовать. Используйте вместо нее mysql_real_escape_string(). |
Примеры
Пример #1 Пример использования mysql_escape_string()
<?php
$item = "Zak's Laptop";
$escaped_item = mysql_escape_string($item);
printf("Escaped string: %s\n", $escaped_item);
?>
Результат выполнения данного примера:
Escaped string: Zak\'s Laptop
Примечания
Замечание:
mysql_escape_string() не экранирует символы % и _.
Смотрите также
- mysql_real_escape_string() - Экранирует специальные символы в строках для использования в выражениях SQL
- addslashes() - Экранирует строку с помощью слэшей
- Директиву magic_quotes_gpc.
it seems the function changes the character encoding of the string.
I get utf-8 encoded string and my mysql database is set to utf-8 as well.
If i just write the data to the database it works perfectly fine, if i use this function, it changes the encoding and therefore stores the wrong characters.
Seems like a bug to me.
