php에서 input 태그 속성을 mysql에 저장하기 0 4 614

by 라온아람 [MySQL] MySQL mysql php html <input> [2021.04.30 06:24:08]


설문 웹페이지를 만들고 있는데,

html 태그가 속성이 다양하다보니, 

mysql에 넣기가 어렵습니다.

(제각각 속성이 달라서 속성에 따른 칼럼을 생성하면 널값이 들어가는 공간이 너무 많아요)

 

그래서 생각한게, input 타입이라는 칼럼에 속성까지 모두 넣는거였습니다.

Ex) input type 칼럼값 : 'range' max='5' min='1'

 

그런데 php에서 호출한 mysqli_query의 결과물이 오류가 납니다.

따옴표가 문제인데,

html 태그 속성값을 '로 감싸주다보니,

$sql을 선언할때 사용한 '과 중복되면서 의도치 않은 위치에서 문자열이 잘리고 오류가 발생합니다.

'와 "의 위치를 바꿔버리면 {$변수명}위치에 변수값이 들어가지 않고 있는 그대로 '{$변수명}'이라는 문자열이 들어가 버리구요

이스케이프도 써봤는데 그것도 안되네여

 

혼자서는 해결이 안되서 조언 구해봅니다.

(아래는 코드 배껴서 타이핑하는 과정에 오타가 있었습니다. 어떻게 수정하는지 몰라서 일단 둘게요)

 

 

by 뉴비디비 [2021.04.30 10:37:35]
태그가 다양하면 XML 형태로 처리할수도 있을꺼 같아요
-- MySQL 
SELECT 
	str
	 , ExtractValue(str, '//input') as val1 
	 , ExtractValue(str, '//max') as val2
	 , ExtractValue(str, '//min') as val3 
FROM (
	SELECT  ' radio max=''5'' min=''1'' ' as str 
	UNION ALL 
	SELECT '<root><input>radio max=''5'' min=''1''</input></root>' 
	UNION All
	SELECT '<root><input>radio</input><max>5</max><min>1</min></root>' 
) tmpTbl

 


by 라온아람 [2021.05.03 17:09:26]

빠른 답변 감사드립니다!!

다만 제가 XML을 모르는 초보라 좀더 공부하고 봐야 이해가 될것같아요 ㅠㅠ

XML 익히면 다시볼게요 ㅎㅎ


by 마농 [2021.04.30 11:28:57]

문자열 연결방식과 바인드변수처리 방식 두가지 방식을 생각할 수 있습니다.
바인드 변수처리방식을 추천합니다.


by 라온아람 [2021.05.03 17:10:10]

바인드 변수 처리방식으로 해결할 수 있었습니다.

이렇게 쉽게 해결될 줄이야. 감사합니다. ㅋㅋ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입