>  기사  >  백엔드 개발  >  실행할 SQL 문을 생성하기 위해 PHP에서 배열 생성 구현

실행할 SQL 문을 생성하기 위해 PHP에서 배열 생성 구현

墨辰丷
墨辰丷원래의
2018-06-08 17:33:082907검색

이 글은 PHP에서 배열 생성을 구현하기 위해 실행하는 SQL 문을 주로 소개하고 있으니 관심 있는 분들이 참고하시면 좋을 것 같습니다.

이런 상황에 직면하게 될까요? 데이터를 얻을 때마다 데이터와 과거 버전 간에는 일정한 차이가 있습니다. 그러나 ThinkPHP의 addAll() 함수를 사용하면 기존 데이터가 삭제되고 다시 작성됩니다. 이것은 분명히 우리가 원하는 것이 아닙니다. 하지만 매번 수십 개의 필드를 가지고 혼자서 SQL을 작성하는 것도 지루합니다. SQL 자동 생성을 우아하고 쉽게 달성하는 방법은 무엇입니까? 그래서 아래 방법을 소개합니다.

/**
   * [array_to_sql 根据数组key和value拼接成需要的sql]
   * @param [type] $array  [key, value结构数组]
   * @param string $type  [sql类型insert,update]
   * @param array $exclude [排除的字段]
   * @return [string]     [返回拼接好的sql]
   */
  function array_to_sql($array, $type='insert', $exclude = array()){
    
    $sql = '';
    if(count($array) > 0){
      foreach ($exclude as $exkey) {
        unset($array[$exkey]);//剔除不要的key
      }

      if('insert' == $type){
        $keys = array_keys($array);
        $values = array_values($array);
        $col = implode("`, `", $keys);
        $val = implode("', '", $values);
        $sql = "(`$col`) values('$val')";
      }else if('update' == $type){
        $tempsql = '';
        $temparr = array();
        foreach ($array as $key => $value) {
          $tempsql = "'$key' = '$value'";
          $temparr[] = $tempsql;
        }

        $sql = implode(",", $temparr);
      }
    }
    return $sql;
  }

요약:위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

관련 권장 사항:

PHP+Mysql+jQuery

PHP는 빈번한 IP 액세스를 금지하여 웹 사이트의 공격을 방지합니다.

PHP는 웹 사이트의 공격을 방지합니다. 빈번한 IP 접근 금지 공격 방지

위 내용은 실행할 SQL 문을 생성하기 위해 PHP에서 배열 생성 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.