PHP匯出資料庫sql檔案,add和update

來源:互聯網
上載者:User

標籤:

/**
* 匯出sql檔案
*/
public function exportSql(){
  //需要匯出的資料庫表存入到數組當中
  $tables =array("T_CRM_QUEUE_FAIL","T_CRM_QUEUE");
 
 //定義一個變數存放sql語句
  $content = ‘‘;
 //開啟並寫入sql檔案
  $fp    = fopen("./Upload/exportSql/".date(‘Ymd‘).".sql",‘w+‘);
  foreach ($tables as $k=>$v){
     $content .= "\r\n--  ".$v."-- \r\n";
     $sql   = "SELECT * FROM ".$v;
     $tablesInfo= M()->query($sql);
     //將每個表的資料匯出到檔案
     foreach($tablesInfo as $key=> $val){
        if($val[‘CDATE‘] != $val[‘UDATE‘]){//如果添加時間和修改時間不一致,則為修改
           $sqlInsert = $this->array_to_sql($val,‘update‘);
           $content.="UPDATE `$v`  ".$sqlInsert.";\r\n";
        }else{
           $sqlInsert = $this->array_to_sql($val);
           $content.="INSERT INTO `$v` VALUES ".$sqlInsert.";\r\n";
        }
     }
  }
  fputs($fp,$content );//寫入檔案
  fclose($fp);//關閉
}
/**
* [array_to_sql 根據數組key和value拼接成需要的sql]
* @param [type] $array  [key, value結構數組]
* @param string $type  [sql類型insert,update]
* @param array $exclude [排除的欄位]
* @return [string]     [返回拼接好的sql]
*/
public  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檔案,add和update

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.