php中實現用數組嫵媚地產生要執行的sql語句_php執行個體

來源:互聯網
上載者:User

 會不會碰到這樣一種情況呢?每次擷取資料將資料和曆史版本都有一定的差別,然而用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;  }

當然,這個方法還有很多可以斟酌的地方。能用,但不是最好的。園子的猿猿們你們有更好的方法嗎?請告訴我吧!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.