_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}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.11
5.12
5.13
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1