_replaceForBinds , mysql 바인딩용 replace

 /**
 * 바인딩용 replace
 */
function _replaceForBinds($str,$binds){
  $isAct = false;
  $arr = array('\(','\)','=','\|',',','\s',addslashes("\'"),"'",'\r','\n');
  $reg = '/(?:(?:'.implode('|',$arr).')|(?:[^'.implode('',$arr).']*))/';
  preg_match_all($reg,$str,$out );
  if(!isset($out[0])){return $str;}
  $arr = $out[0];unset($out);
  
  foreach($binds as $key=>$val){
  echo $key,':',$val,'동작<br>';
   if(is_null($val)){ $val = ''; } //널값일 경우 기본값 처리
   $F0 = false;
   
   for($i=0,$m=count($arr);$i<$m;$i++){
    if($arr[$i]==='\''){
     $F0 = !$F0;
    }
    if($F0 === false){
     if($arr[$i]===$key){
      $isAct = true;
      $arr[$i] = $this->_quote($val);
     }
    }
  
   }
   if($isAct===false){
    exit('ERROR : '.__CLASS__.'::'.__FUNCTION__.'()'.' : BIND_REPLACE ERROR , KEY = '.$key); //여기부터
   }
  }
  return implode('',$arr);
 }

 

 /**
 * 쿼터처리
 */
 function _quote($in)
 {
  if (is_int($in)) {
   return strval($in);
  } else if (is_float($in)) {
   return strval($in);
  } else if (is_bool($in)) {
   return $in?'1':'0';
  } else if (is_null($in)) {
   return 'NULL';
  } else if (is_string($in)) {
   return "'" . $this->_escapeSimple($in) . "'";
  }else{
   $this->exitError('ERROR : '.__CLASS__.'::'.__FUNCTION__.'(), line '.__LINE__.' : Variable Type('.gettype($in).') is not Support.');
  }
 }

/**

* 이스케이프 문자처리 (mysql 기준)

*/

function _escapeSimple($in){

return $this->escapeType==0?mysql_escape_string($in):mysql_real_escape_string($in,$this->conn);

}



댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
공대여자
공대여자
공대여자
PHPExcel 1 6
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자