티스토리 뷰

php mysql 프로그래밍(코딩)을 하다 보면 html 태그를 그대로 insert 할 일이 있다. 이럴때 그냥 sql문을 쓰면 insert 하다가 오류를 발견할 것이다.


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Nanum Gothic';}* {font-family:'Nanum Gothic' !important;}.soccer-formation,.hock' at line 1


위와 같은 SQL syntax 오류를 발견할 것이다. 즉 SQL 문법 오류, SQL문이 잘못됐다는 것이다.


그 이유는 html 코드에는 SQL에서 특수문자로 처리되는 것이 많이 있다. 즉 이스케이프(escape) 해야한다. 그래서 이러한 문자들을 처리해줘야 한다.


이때 사용하는 것이 php의 addslashes() 함수다.


php 매뉴얼을 살펴보면


(PHP 4, PHP 5, PHP 7)

addslashes — 문자열을 슬래시로 인용

설명 ¶

string addslashes ( string $str )

데이터베이스 질의 등에서 처리할 필요가 있는 문자 앞에 백슬래시를 붙인 문자열을 반환합니다. 이 문자들은 홑따옴표('), 겹따옴표("), 백슬래시(\), NUL(NULL 바이트)입니다.

addslashes()를 사용하는 대표적인 예는 데이터베이스에 데이터를 넣을 때 입니다. 예를 들어, 데이터베이스에 O'reilly라는 이름을 넣으려고 할때, 이스케이프할 필요가 있습니다. 대부분의 데이터베이스는 \을 사용하기에 O\'reilly가 되어야 합니다. 이 데이터를 데이터베이스에 넣으면 추가한 \은 저장되지 않습니다. PHP 지시어 magic_quotes_sybase를 on으로 설정하면 '은 '을 이용하여 이스케이프합니다.

자세한 내용은 아래의 php 매뉴얼을 살펴보면 된다.

http://php.net/manual/kr/function.addslashes.php

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함