TIP게시판

제목 각 라이브러리별 DB 핸들링 샘풀
글쓴이 이지포토 작성시각 2012/12/09 13:15:52
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 13597   RSS

팁이라고 할껏 까지는 없지만 여러 프로젝을 하다보니 DB update 하는 모양새가 각기 다르고 해서
간단히 사용방법이 어떻게 다른가를 샘풀로 넣었습니다.
고수 프로그래머들은 본인이 직접만든 라이브러리를 쓰는 사람도 여럿 보았습니다.
여하간에 간단히 기재해 봅니다.

<?


//PHP 일반적인 방법
$sql = "UPDATE ".$tablename." SET ";
$sql .= "col1 = '".$col1."' ";
$sql .= "col2 = '".$col2."' ";
$sql .= "col3 = '".$col3."' ";
$sql .= "WHERE idx = '".$idx."' ";

mysql_query($sql);


//SQL 릴레이 이용하는방법

//SQL 릴레이 샘풀1(오라클 바인딩이용)
 function updateMediumReg($oci, $cur, $id){
  $returnResult = false;

  $sql = " UPDATE TAB_TEMPSITE           ";
  $sql .= " SET   C_PROCSTAT = '1',               "; // 검수요청
  $sql .= "    C_UPDATE   = TO_CHAR(SYSDATE, 'YYYYMMDDHH24MMSS') ";
  $sql .= " WHERE 1=1                          ";
  $sql .= " AND   C_PUBID    = :C_PUBID        ";
  $sql .= " AND   C_PROCSTAT = '0'             ";

  $oci->prepareQuery($cur, $sql);
  $oci->inputBind($cur, 'C_PUBID'    , $id);

  if($oci->executeQuery($cur)>0){
   $returnResult = true;
  }

  $oci->endSession();
  return $returnResult;
 }

//SQL 릴레이 샘풀2(오라클 바인딩이용)
  $qry = "
     UPDATE TAB_TMPCAMPAIGNINFO c_tc
     SET c_tc.C_PROCSTAT = '".$procstat."'
     WHERE c_tc.C_CAMPAIGNID = :campaignid
    ";

  $oci->prepareQuery($cur,$qry);
  $oci->inputBind($cur,"campaignid",$this->f_campaignno);

  if($oci->executeQuery($cur)){
   $chkJob = true;
  }


//Pear DB 라이브러리 이용방법
//Pear DB 샘풀1
 function member_update(){
  global $db,$dns ;
  isset($que);
  isset($res);

  $m_tel = str_replace("-","",$_REQUEST['m_tel']) ;
  $m_phone = str_replace("-","",$_REQUEST['m_phone']) ;

  $que = "update shop_member set
   m_id    = '$_REQUEST[m_id]',
   c_pw     = '$_REQUEST[c_pw]',
   comp    = '$_REQUEST[comp]',
   m_tel    = '$m_tel',
   m_phone    = '$m_phone',
   m_email    = '$_REQUEST[m_email]',
   m_zip    = '$_REQUEST[m_zip]',
   m_addr1    = '$_REQUEST[m_addr1]',
   m_addr2    = '$_REQUEST[m_addr2]',
   o_rel    = '$_REQUEST[o_rel]'
   where m_id = '$_SESSION[user_id]' "; 
  $que .= " ";   
  $res = $db->query($que); 
  
  if($res){ msg_close("수정되었습니다.");
  }else{  msg_close("수정되지 않았었습니다. 관리자에게 문의하세요");
  }
   
 }

//ADO DB 라이브러리 이용방법
//ADO DB 샘풀1
 $table = "t_scholarship";
 
  $que = "update $table set ";
  $que .= "scho_fee = '$scho_fee' ";
  $que .= "where idx='$idx' ";
  $db->execute ($que);
  
//ADO DB 샘풀2 (UPDATE)
 foreach ($student_code as $key=>$val){
  $strSQL = "delete from $table where class_idx='$class_idx' and student_id='$val'";
  $db->execute ($strSQL);
  
  //array 이용 aotoexecute 방법
  $record = array();
  $record["guide_pro_id"] = "";
  $record["class_no"] = "";
  $where = "student_id='$val'";
  $db->autoexecute ($table2, $record, 2, $where);
 }

//ADO DB 샘풀3 (INSERT)
 foreach ($stu_arr as $key=>$data){ 
  $sql = "select count(*) as cnt from t_paper where student_id='{$student_id}'";
  $rs = $db->execute ($sql);
  if ($rs->fields["cnt"]==0){ 
   $record = array();
   $record["sem_code"]=$_POST["sem_code"];
   $record["paper_title"]=$_POST["paper_title"];
   $record["cre_date"] = date("Y-m-d H:i:s"); 
   $db->autoexecute ($table, $record, 1);
  }
 }

//코드이그나이터 
//Codeignater 샘풀1
    function modify($idx, $level, $word)
    {
        $this->db->update('ibtwords', array('level' => $level, 'word' => $word), array('idx' => $idx));
    }

//Codeignater 샘풀2
 function kcUpdate($Idx)
 {
  $VAL = $_POST;
  
  $this->kcSetField($VAL);
  $this->db->where("iaIdx", $Idx);
  $this->db->update($this->table_name);
 }


function kcSetField($VAL)
{
 if (isset($VAL['Post1']) && strlen($VAL['Post1'])) $apost1 = $VAL['Post1'];
 if (isset($VAL['Post2']) && strlen($VAL['Post2'])) $apost2 = $VAL['Post2'];
}



?>
 다음글 세션값을 체크 또는 id로 member 정보 자동으로...
 이전글 Active Recode 작성시에 Where 절 문자열... (2)

댓글

변종원(웅파) / 2012/12/10 16:58:00 / 추천 0
각 db별 사용법(?) 감사합니다.