sql안에 변수들을 가변적으로 쓸수있을까요

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
sql안에 변수들을 가변적으로 쓸수있을까요

QA

sql안에 변수들을 가변적으로 쓸수있을까요

본문

기존분들도 안하셨던걸보면 원래 언어적으로 안되는가 싶다가도 질문드립니다.

 

inser나 update sql 칠때

 

$sql = "

                    ~~~~~~~~~

                  ~~~~~~~~~

                     wr_1 = '$wr_1',

                     wr_2 = '$wr_2',

                     wr_3 = '$wr_3',

                     wr_4 = '$wr_4',

                     wr_5 = '$wr_5',

                     wr_6 = '$wr_6',

                     wr_7 = '$wr_7',

                     wr_8 = '$wr_8',

                     wr_9 = '$wr_9' "

이런식인데 저부분을 common.php같은데 빼놓고 변수처럼 쓸수있을까요

 

$extra_sql = "

  wr_1 = '$wr_1',

  wr_2 = '$wr_2'

.....

";

 

이런식으로 하면 common.php에서 $wr_1 값이 null이라 

$extra_sql 스트링값이 

$extra_sql = "

  wr_1 = '',

  wr_2 = ''

.....

";

이렇게 공백으로 인식해서 문제고

 

$extra_sql = "

  wr_1 = '\$wr_1',

  wr_2 = '\$wr_2'

.....

";

역슬레시로 해도 db에 $표시까지 그대로 문자로 들어갑니다.

 

혹시 방법이 있을까요? 추가 컬럼이많고 또 확정이 아니기도해서 질문드립니다

 

이 질문에 댓글 쓰기 :

답변 4

음.. $wr_1 값을 만드는 부분이 common.php 보다 아래에 있을텐데  

(예를들면 view.php, write.php 이런 페이지들)

$wr_1이 get, post로 주고받는 데이터가 아니다보니

common.php에서 전역으로 묶어서 사용하긴 힘들어 보입니다.

문자열로 만들어두고 치환하시면 될거 같네요

 

ex) 


common 에서
$sql = "
                    ~~~~~~~~~
                  ~~~~~~~~~
                     wr_1 = '{{wr_1}}',
                     wr_2 = '{{wr_2}}',
                     wr_3 = '{{wr_3}}',
                     wr_4 = '{{wr_4}}',
                     wr_5 = '{{wr_5}}',
                     wr_6 = '{{wr_6}}',
                     wr_7 = '{{wr_7}}',
                     wr_8 = '{{wr_8}}',
                     wr_9 = '{{wr_9}}' ";
 
 
 
 
실제로 쿼리를 사용하는 소스에서
$sql = str_replace("{{wr_1}}" , $wr_1 , $sql );
$sql = str_replace("{{wr_2}}" , $wr_2 , $sql );
$sql = str_replace("{{wr_3}}" , $wr_3 , $sql );

감사합니다. 그런데 이것도 나중에 뭘 추가하려면 write_update.php 쪽을 직접 건드려야 하지않나요? 혹시 제가 제 답변으로 해놓은 방법은 어떤가요? 써도되는 코드인가요?

해결했습니다

common.php에

$extra_list = array(

  "wr1",

  "wr2",

  "wr3",  

);

이렇게 두고

기존 $sql에 추가하는 형식으로

   $sql = "insert into ~~~~~";

 

   foreach($extra_list as $k=>$v){

        $tmpV = " ,".$v." = ".$$v;

        $sql .= $tmpV;

        //;

    }

 

$를 두개써서 동적으로 할당이 되네요

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT