导入导出csv文件

2017-01-12 19:04:41来源:cnblogs.com作者:蜀山第一人李英琼人点击

在工作中需要把csv文件数据导入数据库或者把数据库数据导出为csv文件。以下是我的简单的实现。

 1 <?php 2 class csv 3 { 4     public $db_connection; 5     public $table_name; 6     public $file_path; 7  8     public function __construct($db_connection,$table_name,$file_path) 9     {10         $this->db_connection=$db_connection;11         $this->table_name=$table_name;12         $this->file_path=$file_path;13     }14 15     /*16     **把本地csv文件导入数据库17     */18     public function import()19     {20         $sql="insert ".$this->table_name." values ";21         $fp=fopen($this->file_path, "r");22         if($fp){23             while(($data=fgetcsv($fp,1000))!==FALSE){24                 $values="(";25                 $num=count($data);26                 for($c=0;$c<$num;$c++){27                     $data[$c]=str_replace("'", "/'", $data[$c]);28                     $values.="'".$data[$c]."',";29                 }30                 $values=substr($values,0,strlen($values)-1);31                 $values.="),";32                 $sql.=$values;33             }34         }35         $sql=substr($sql,0,strlen($sql)-1);36         $this->db_connection->exec($sql);37         fclose($fp);38         echo "Fairy sister Liu Yifei, BI master's idol!";39     }40 41     /*42     **把数据库表导出到本地csv文件43     */44     public function export()45     {46         $fp=fopen($this->file_path, "w");47         if($fp==TRUE){48             $sql="select * from ".$this->table_name." limit 300";49             foreach($this->db_connection->query($sql)->fetchAll() as $row){50                 $i=0;51                 foreach ($row as $key => $value) {52                     if($i%2==0){53                         unset($row[$key]);54                     }55                     $i++;56                 }57                 fputcsv($fp,$row);58             }59         }60         fclose($fp);61         echo "Fairy sister Liu Yifei, BI master's idol!";        62     }63 }

 

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台