ホームページ  >  記事  >  バックエンド開発  >  実行するSQL文を生成する配列生成をphpに実装する

実行するSQL文を生成する配列生成をphpに実装する

墨辰丷
墨辰丷オリジナル
2018-06-08 17:33:082944ブラウズ

この記事では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 実装

禁止 IP による PHP頻繁なアクセスにより Web サイトへの攻撃を防止します

PHP は頻繁な IP アクセスを禁止することで Web サイトへの攻撃を防止します

以上が実行するSQL文を生成する配列生成をphpに実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。