П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 5514 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 7838 раз(а).

Учебник HTML.
Просмотров 4597 раз(а).

Руководство по PHP5.
Просмотров 1155 раз(а).

Хостинг через призму DNS.
Просмотров 6414 раз(а).

Подборка текстов стандартных документов.
Просмотров 57212 раз(а).

Учебник PHP - Самоучитель
Просмотров 4813 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 10862 раз(а).

Внешние атаки...
Просмотров 6458 раз(а).

Учебник PHP.
Просмотров 3930 раз(а).

SSI в примерах.
Просмотров 943 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Глава 8. Интерфейсы для MySQL
Пред.     След.

8.4. Интерфейс C для MySQL
8.4.3. Описание функций интерфейса C

8.4.3.43. mysql_real_escape_string()

unsigned long mysql_real_escape_string(MYSQL *mysql, char *to, const char *from, unsigned long length)

Описание

Эта функция используется для создания допустимой SQL- строки, которую можно использовать в команде SQL. See Раздел 6.1.1.1, «Cтроки».

Строка из секции from кодируется в экранированную SQL-строку, принимая во внимание текущую кодировку данного соединения. Результат помещается в секцию to с добавлением концевого нулевого байта. Кодируются следующие символы: NUL (ASCII 0), '\n', '\r', "\", "'", """ и Ctrl-Z (see Раздел 6.1.1, «Литералы: представление строк и чисел»). (Строго говоря, MySQL требует только чтобы обратная косая черта и кавычки, используемые для квотинга строк в запросе, были проэкранированы. Эта функция экранирует и другие символы, делая их более легкими для чтения в журнальных файлах.)

Строка, указанная в секции from, должна быть длиной length байтов. Необходимо выделить для секции to буфер величиной по меньшей мере length*2+1 байтов (в наихудшем случае каждый символ может потребовать кодировки с использованием двух байтов и, кроме того, необходимо место для концевого нулевого байта). При возврате функции mysql_real_escape_string() содержимое секции to будет представлять собой строку с нулевым окончанием. Возвращаемая величина представляет собой длину данной кодированной строки, не включая концевой нулевой символ.

Пример

char query[1000],*end;

end = strmov(query,"INSERT INTO test_table values(");
*end++ = '\";
end += mysql_real_escape_string(&mysql, end,"What's this",11);
*end++ = '\";
*end++ = ',';
*end++ = '\";
end += mysql_real_escape_string(&mysql, end,"binary data: \0\r\n",16);
*end++ = '\";
*end++ = ')';

if (mysql_real_query(&mysql,query,(unsigned int) (end - query)))
{
fprintf(stderr, "Failed to insert row, Error: %s\n",
mysql_error(&mysql));
}

Функция strmov(), использованная в этом примере, присутствует в библиотеке mysqlclient и работает подобно функции strcpy(), но возвращает указатель на концевой нуль первого параметра.

Возвращаемые значения

Длина величины, помещенной в секции to, не включая концевой нулевой символ.

Ошибки

Нет.


Назад Начало Главы Начало Раздела Начало Подраздела Вперед

Пред. Глава След. Глава
Глава 7. Типы таблиц MySQL Начало Книги Глава 9. Расширение MySQL


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru