Member의 Extra_vars의 특정 오브젝트를 쿼리로 직접 수정하고 싶은데..
어떻게 해야하죠?
$query = $oDB->_query('UPDATE rx_member SET...
이런 방식으로 실행시키고 싶은데.. extra_vars이 다 묶여있으니..
PHP | PHP 8.1 |
---|---|
CMS | Rhymix 2.x |
Member의 Extra_vars의 특정 오브젝트를 쿼리로 직접 수정하고 싶은데..
어떻게 해야하죠?
$query = $oDB->_query('UPDATE rx_member SET...
이런 방식으로 실행시키고 싶은데.. extra_vars이 다 묶여있으니..
아, 그렇군요 ㅠㅠ.. 함수를 통해서 시도를 했었는데.. 직접 접근을 하는 것이 아닌 이상 이상하게도 값이 변하지 않더라고요.(POST로 값을 전달하는거라) 그래서 쿼리로 직접 접근해서 업데이트 하려고 했던건데
PHP에서 serialize하여 묶어놓은 것을 SQL에서 풀어서 조작할 수는 없습니다. 어떻게든 문자열을 쪼개고 붙이고 해서 조작하는 데 성공하더라도 코어에서 별도로 유지하고 있는 캐시를 갱신해 주지 않으면 소용없고요.
PHP를 사용할 수 있다면 코어에서 제공하는 확장변수 업데이트 함수를 활용하는 것이 가장 편리하겠습니다. 아래의 코드는 라이믹스 2.0 기준입니다. 구버전은 일부 문법이 다르거나 함수가 제공되지 않을 수도 있습니다.
// 변경할 확장변수가 여러 개인 경우 한꺼번에 지정할 수 있습니다.
// 변경하지 않을 확장변수는 지정하지 않아도 됩니다. 기존 값이 그대로 유지됩니다.
$updates = ['변수명1' => '값1', '변수명2' => '값2'];
$oMemberController = MemberController::getInstance();
$oMemberController->updateMemberExtraVars($member_srl, $updates);