본문 바로가기

PHP

200825 php mysql insert single quote, javascript 정규식

카테고리를 골라야 해서 [php]로 했지만 javascript도 해당된다. 

 

record에 운동용 게시판 만들면서 일기 insert 할 때 작은따옴표가 있으면 글이 잘려서 들어가게 되었다. 이거 처음 있는 일 아니고 이전에 다른 게시판 할 때도 계속 그랬는데 할 때마다 어떻게 처리했는지 기억이 안난다. 언제나 초심.. 티스토리 블로그에 이렇게 적어 놔야 메멘토처럼 하나 하나 되짚으면서 먼 훗날 또 다른 걸 만들 수 있다.. (그리고 이전 게시판들 들춰보니 해결 안함. 그냥 작은따옴표를 안씀ㅋㅋ)

 

write.php 에 글을 쓰고 form 으로 작성글을 update.php에 post로 넘겨 거기서 mysql insert 하게 해놨다.

글이 잘려 넘어가는 이유는 write 페이지에서 아래 두 개 중에 위의 주석처리 한 것처럼 해놨더니 글에서 처음 등장하는 작은따옴표를 value의 닫는 작은따옴표로 받아서 그런 거였다. 그래서 큰따옴표와 작은따옴표끼리 switch 해줬음.

//$(this).append("<input type='hidden' name='submitContent' value=' " + submitContent + " '/>");
$(this).append('<input type="hidden" name="submitContent" value=" ' + submitContent + ' "/>'); 

 

그리고 그 윗 부분에 정규식으로 싱글쿠옷을 따블 싱글쿠옷으로 바꿔줌.

tmpRegEx = new RegExp("'","g");
submitContent = submitContent.replace(tmpRegEx,"''");

왜냐하면 이 친구, single quote, 는 javascript 에서 넘길 때도 문제지만 mysql query 로 보낼 때도 문제가 될 거니까. 구글에 php mysql single quote 으로 검색하니 역시 어떻게 해야할지 낯선 온라인 칭구가 싱글쿠옷을 따블로 바꾸면 된다고 알려줬다.   

 

이렇게 해서 해결~~~

728x90