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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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




Глава 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