php如何嫵媚地產生執行的sql語句

來源:互聯網
上載者: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;    }

 

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

php如何嫵媚地產生執行的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.