포럼
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
MYSQL로 XML Update쿼리에서 문제점
2015.01.07 17:49
XE에서 XML Query를 이용한 Update 시의 버그(?) 문제 점(?) 입니다.
원래대로라면 MySQL Query의 문법 중 `Column` = 'DATA' 로 표현하게 되는데
신기하게도 XE에서는 특정 칼럼을 업데이트 시킬 때
숫자일 경우엔 Parser(구분자)가 없고, 문자일 때는 ``구분자를 넣은 희안한 버그가 있더군요.
<table name="auth"> <column name="uid" type="number" size="11" notnull="notnull" primary_key="primary_key" /> <column name="color" type="varchar" size="6" /> </table>
<query id="updateAuthData" action="update"> <tables> <table name="auth" /> </tables> <conditions> <condition operation="equal" column="uid" var="uid" /> </conditions> <columns> <column name="color" var="color" /> </columns> </query>
$args = new stdClass(); $args->uid = $member_srl; $args->color = $color; $output = executeQuery("omdoll.updateAuthData", $args);
UPDATE `pvpgn_auth` as `auth` SET `color` = `6b0000` WHERE `uid` = 2838888
ERROR : 'Unknown column \'6b0000\' in \'field list\''
언듯 다른 문서에서도 이 문제 점 때문에 골머리를 앓고있다고 보았습니다만, 아직도 수정되지 않은 상황이네요.
구분자로 처리하는 이유가 보안상의 문제가 있어서 그런건가요?
사이에
구문을 추가해주니까 작동합니다.
그러나 캐시파일 재생성 한다면 날라가겠죠?
Schemas에 정의 되어있고, 데이터로 string으로 넘기는데 굳이 번거롭게 ColumnType을 지정해줘야 하는건지 의문이네욤.
근본적인 해결방법을 아직 못찾았습니다.