CI 묻고 답하기

제목 Codeigniter model에서 update시 쿼리 바인딩할때 함수 질문
카테고리 CI 2, 3
글쓴이 케케케 작성시각 2022/02/11 09:37:29
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 6375   RSS

 

안녕하세요

Codeigniter model에서 update쿼리문을 작성하는데

 

바인딩할때 mysql 함수가 들어가면 어떻게 사용을 해야할까요?

 

예를들면

일반작으로 쿼리 작성시에 이렇게 하는데

set 부분에 mysql 함수가 들어가야합니다.

        $sql = "UPDATE Board

                   SET BoardId = ?

                 WHERE BoardId = ?

                 AND Seq = ? LIMIT 1;";

           

        return parent::executeSql($sql, array($BoardId, $PreBoardId, $Seq));

 

UPDATE Board SET TargetPath = REPLACE(TargetPath, '/test/922', '/test2/921') WHERE boardId = '922';

이런식 REPLACE같은 함수가 들어갑니다.

함수가 들어가면 어떤식으로 작성을 해야할까요? 

REPLACE(TargetPath, '/test/922', '/test2/921')

 

이걸 그대로 넣으면 텍스트 형태로 바뀔것 같아서요

 

감사합니다

 

 

 다음글 로그아웃 남은시간 표시 (3)
 이전글 validation에 대해서 궁금한게 있습니다 (2)

댓글

변종원(웅파) / 2022/02/11 10:21:40 / 추천 0
그런 경우는 바인딩이 아니라 escape한 값을 사용하도록 sql문을 만드셔야할 것 같네요.
한대승(불의회상) / 2022/02/11 10:27:38 / 추천 0

쿼리빌더 set() 메소드를 고려해 보시거나 SQL문을 하드코딩해야 합니다.

$sql = "UPDATE Board SET TargetPath = REPLACE(TargetPath, '" . '/test/922' . "', '" . '/test2/921'. ") WHERE BoardId = ?";

 

케케케 / 2022/02/11 10:47:01 / 추천 0
where 절만 저렇게하고 말씀하신대로 하드코딩 하던지해야겠네요...답변 감사합니다.