• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 1. MySQL Connector / ODBC
    2. MySQL Connector/Net
    3. MySQL Connector/J
    4. MySQL Connector/C++
    5. MySQL Connector/C
    6. MySQL Connector/Python
    7. libmysqld, the Embedded MySQL Server Library
    8. MySQL C API
    1. MySQL C API 구현
    2. MySQL Server MySQL Connector/C 동시 설치
    3. C API 클라이언트 프로그램 예제
    4. Building and Running C API Client Programs
    5. C API Data 구조
    6. C API Function 개요
    7. C API Function 설명
    1. mysql_affected_rows()
    2. mysql_autocommit()
    3. mysql_change_user()
    4. mysql_character_set_name()
    5. mysql_close()
    6. mysql_commit()
    7. mysql_connect()
    8. mysql_create_db()
    9. mysql_data_seek()
    10. mysql_debug()
    11. mysql_drop_db()
    12. mysql_dump_debug_info()
    13. mysql_eof()
    14. mysql_errno()
    15. mysql_error()
    16. mysql_escape_string()
    17. mysql_fetch_field()
    18. mysql_fetch_field_direct()
    19. mysql_fetch_fields()
    20. mysql_fetch_lengths()
    21. mysql_fetch_row()
    22. mysql_field_count()
    23. mysql_field_seek()
    24. mysql_field_tell()
    25. mysql_free_result()
    26. mysql_get_character_set_info()
    27. mysql_get_client_info()
    28. mysql_get_client_version()
    29. mysql_get_host_info()
    30. mysql_get_proto_info()
    31. mysql_get_server_info()
    32. mysql_get_server_version()
    33. mysql_get_ssl_cipher()
    34. mysql_hex_string()
    35. mysql_info()
    36. mysql_init()
    37. mysql_insert_id()
    38. mysql_kill()
    39. mysql_library_end()
    40. mysql_library_init()
    41. mysql_list_dbs()
    42. mysql_list_fields()
    43. mysql_list_processes()
    44. mysql_list_tables()
    45. mysql_more_results()
    46. mysql_next_result()
    47. mysql_num_fields()
    48. mysql_num_rows()
    49. mysql_options()
    50. mysql_options4()
    51. mysql_ping()
    52. mysql_query()
    53. mysql_real_connect()
    54. mysql_real_escape_string()
    55. mysql_real_query()
    56. mysql_refresh()
    57. mysql_reload()
    58. mysql_rollback()
    59. mysql_row_seek()
    60. mysql_row_tell()
    61. mysql_select_db()
    62. mysql_set_character_set()
    63. mysql_set_local_infile_default()
    64. mysql_set_local_infile_handler()
    65. mysql_set_server_option()
    66. mysql_shutdown()
    67. mysql_sqlstate()
    68. mysql_ssl_set()
    69. mysql_stat()
    70. mysql_store_result()
    71. mysql_thread_id()
    72. mysql_use_result()
    73. mysql_warning_count()
    8. C API Prepared Statements
    9. C API Prepared Statement Data 구조
    10. C API Prepared Statement 함수 개요
    11. C API Prepared Statement 함수 설명
    12. C API Threaded 함수 설명
    13. C API 임베디드 서버 함수 설명
    14. C API Client Plugin 함수
    15. C API를 사용하는 경우 일반적인 질문과 문제
    16. 자동 재 연결 동작 제어
    17. 여러 명령문 실행 C API 지원
    18. C API Prepared Statement 문제
    19. C API Prepared Statement date 및 time 값 처리
    20. C API의 Prepared CALL Statements 지원
    9. MySQL PHP API
    10. MySQL Perl API
    11. MySQL Python API
    12. MySQL Ruby APIs
    13. MySQL Tcl API
    14. MySQL Eiffel Wrapper
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

23.8.7.54 mysql_real_escape_string()

unsigned long mysql_real_escape_string(MYSQL *mysql, char *to, const char *from, unsigned long length)
mysql 은 유효한 열린 연결해야합니다. 이스케이프는 서버에서 사용되는 문자 집합에 따라 다르기 때문에 이것이 필요합니다
설명

이 함수는 SQL 문에서 사용할 수있는 유효한 SQL 문자열을 만드는 데 사용됩니다. 섹션 9.1.1 "문자열 리터럴" 을 참조하십시오.

from 에서 문자열은 연결의 현재 문자 집합을 고려하여 탈출 된 SQL 문자열 인코딩됩니다. 결과는 to 에두고 종단의 NULL 바이트가 부가됩니다. 인코딩 된 문자는 ' \ '' ' '' " " NUL (ASCII 0) " \n "" \r "및 Control-Z입니다. 엄밀히 말하면, MySQL은 쿼리의 문자열에 따옴표를 위해 사용되는 백 슬래시와 인용 문자가 이스케이프되는 것만을 필요로합니다. mysql_real_escape_string() 는 다른 문자를 로그 파일에서 읽을 수 있도록 따옴표로 묶어야합니다. 비교 내용은 섹션 9.1.1 "문자열 리터럴" 과 섹션 12.5 "문자열 함수" 리터럴 문자열과 QUOTE() SQL 함수의 따옴표 사용 규칙을 참조하십시오.

from 에 의해 지시되는 문자열은 length 바이트의 길이 여야합니다. to 버퍼를 적어도 length*2+1 바이트가되도록 할당해야합니다. (최악의 경우 각 문자를 2 바이트를 사용하여 인코딩 할 필요가있을 수 있기 때문에 종단의 NULL 바이트 분의 여유가 필요합니다.) mysql_real_escape_string() 이 돌아 왔을 때의 to 의 내용은 NULL 종단 문자열입니다. 반환 값은 종단의 NULL 문자가 포함 된 인코딩 된 문자열의 길이입니다.

연결의 문자 집합을 변경해야하는 경우 SET NAMES (또는 SET CHARACTER SET ) 문을 실행하는 것이 아니라 mysql_set_character_set() 함수를 사용합니다. mysql_set_character_set() 는 SET NAMES 처럼 작동하지만, SET NAMES 는 영향을 미치지 않는다 mysql_real_escape_string() 에서 사용되는 문자 세트에도 영향을 미칩니다.

Example
char query[1000],*end;

end = strmov(query,"INSERT INTO test_table VALUES(");
*end++ = '\'';
end += mysql_real_escape_string(&mysql,end,"What is this",12);
*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() 함수는 libmysqlclient 라이브러리에 포함되어 strcpy() 처럼 작동하지만 첫 번째 매개 변수의 종단의 NULL 포인터를 반환합니다.

반환 값

to 놓인 종단의 NULL 문자가 포함 된 값의 길이.

오류

없음.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved