메뉴 건너뛰기

Dev tips

PHP PHP 에서 MySQL 바인딩 구현

taknim 2009.09.11 18:27 조회 수 : 9232 추천:2192

누군가가 말해준 MySQL 바인딩

/* 바인드 */
protected function bind($key) {
  $key  = substr($key[0],1);
  
  if(array_key_exists($key,$this->tmpBind)) {
   $bind = addslashes($this->tmpBind[$key]);
  } else {
   $tmp = explode(':',$this->tmpQuery);
  
   foreach($tmp as $i => $buf) {
    if(substr($tmp[$i+1],0,strlen($key)) == $key) {
     $bind = addslashes($this->tmpBind[$i]);
    }
   }
  }
  return sprintf("'%s'", $bind);
}

/* 쿼리 실행 */
public function query($sql,$bind='') {
  if(!is_resource($this->conn)) $this->conn();
  
  if(isset($bind)) {
   $this->tmpQuery = $sql;
   $this->tmpBind = $input;
  
   $sql  = preg_replace_callback('/:[a-zA-Z_]+[a-zA-Z0-9_]*/',array($this,'bind'),$sql);
  
   unset($this->tmpQuery);
   unset($this->tmpBind);
  }

  $this->stmt = mysql_query($sql,$this->conn);

  return $this->stmt;
}

/* 실행 예제 */
$sql = " select * from table where id=:a1 ";
// array('a1'=>'taknim') or array('taknim');
$sql  = preg_replace_callback('/:[a-zA-Z_]+[a-zA-Z0-9_]*/',array($this,'bind'),$sql);
번호 제목 글쓴이 날짜 조회 수
59 [gd] imagecopyresampled 이미지 썸네일 생성 taknim 2017.03.15 1074
58 [gd] image_filter 이미지 흑백 처리 taknim 2017.03.15 614
57 랜덤 문자열(쿠폰번호) 생성 taknim 2016.12.15 12156
56 SEED 블록암호 알고리즘 소스 (C/C++, JAVA, ASP, JSP, PHP) [1] file taknim 2016.05.27 1627
55 Excel & Office read/write - phpexcel taknim 2014.09.26 3148
54 [php] euckr 에서 깨지는 문자 해결 #2 taknim 2012.02.16 5725
53 [php] euckr 에서 깨지는 문자 해결 taknim 2012.02.15 6521
52 [암호화] hash 관련 함수들... taknim 2011.12.20 6720
51 [php] ctype - 문자열 체크 taknim 2010.08.02 10831
50 register_global = off 일때 GET,POST,GOOKIE 등 변수 가져오기 taknim 2010.06.28 11541
49 mcrypt 암호화/복호화 AES/CBC/PKCS5/PKCS7/PADDING [1] taknim 2010.03.19 19845
48 php 오버라이딩 구현 taknim 2010.02.23 10576
47 [php] imagettftext 사용할때 문자열 정렬하기 taknim 2009.10.21 13925
46 php.ini 설정 taknim 2009.09.28 9788
45 PHP 클래스 autoload 및 instance 공유 secret taknim 2009.09.16 2
» PHP 에서 MySQL 바인딩 구현 taknim 2009.09.11 9232
43 file_get_content 사용하기 GET, POST taknim 2009.08.25 10746
42 [PHP] 소켓 통신할때 패킷이 길어서 받지 못 할 때 해결 방법 taknim 2009.08.07 8734
41 [객체지향] this / __get() / __set() / clone / autoload / :: taknim 2009.06.11 9358
40 [php.ini] auto_prepend_file, auto_append_file 설정 taknim 2009.06.04 11797