묻고답하기
executeQuery 관련해서 질문 드립니다..ㅜ
2015.12.24 19:11
xe 보드 버전은 1.5.1 버전이구요. php 버전은 5.1.6입니다
executeQuery 를 하기 위해서 xml을 작성하였는데
<query id="insertTwo" action="insert">
<tables>
<table name="Two" />
</tables>
<columns>
<column name="id" default="id" />
<column name="regdate" default="curdate()" />
<column name="phone1" var="phone1" />
<column name="phone2" var="phone2" />
<column name="phone3" var="phone3" />
<column name="mail1" var="mail1" />
<column name="mail2" var="mail2" />
<column name="mail3" var="mail3" />
<column name="passwd" var="passwd" />
</columns>
</query>
여기에서 갑자기 오류가 확 나길래 print_r 을 찍어서 확인해보았더니
INSERT INTO `xe_Two`
(`id', `regdate`, `phone1`, `phone2`, `phone3`, `passwd`)
VALUES ( 60, '20151224180858', '010', '3001', '4437', `aaaa`)
이런식으로 뜨고 1054 오류를 뱉습니다. 확인해보니 마지막 passwd 컬럼에 대한 값을 ` 로 감싸는데 이러한 문제가 발생해보신분 있으신분 있으신가요? 다른 컬럼은 정상적으로 ' 으로 감싸는것까지 모두 확인했습니다. 숫자가 들어갈 경우 '' 을 감싸지 않은 ,1234 로 쿼터없이 바로 들어가는 것을 확인하였으나 문자가 들어갈경우에는 ` 으로 감싸는 것으로 확인했습니다. ( php 5.2.1 에서는 ' 로 감싸는 것을 확인하였으나 불가피하게 1.5.6 버전을 사용하는 부분도 있어 그렇게 되었습니다. )
댓글 3
-
sejin7940
2015.12.25 03:05
-
터너
2015.12.25 12:55
해당 스키마에 VARCHAR(8)로 준것을 확인했습니다.. 아쉽게도 그건 아닌거같아요..ㅜ
<column name="passwd" type="varchar" size="8" />
-
터너
2015.12.28 13:02
또한 php 5.2.1, 5.3.x 버전에서는 문제가없었는데, 5.1 버전대만 그런거 같아요..
해당 모듈의 schema 에 해당 칼럼이 정의되어있는지 확인해보세요
숫자값은 꼭 정의가 안 되어있어도 입력이 되는데
문자값은 반드시 schema 파일에 정의가 되어있어야만 insert 이나 update 가 됩니다.