2016-04-26 12 views
0

私のデータベースをCSV形式でexprしていますが、mysqlテーブルの列名をエクスポートする方法もわかりません。クエリのcsvにエクスポートするときにデータベースからmysqlテーブルの列名を取得

public function save($query) 
    { 
     $stmt = $this->db->prepare($query); 
     $stmt->execute(); 

     /* header("Content-type: text/csv"); 
     header("Content-Disposition: attachment; filename=file.csv"); 
     header("Pragma: no-cache"); 
     header("Expires: 0"); 

     var_dump($stmt->fetch(PDO::FETCH_ASSOC)); 
     $data = fopen('/tmp/db_user_export_".time().".csv', 'w'); 
     while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){ 
      echo "Success"; 
      fputcsv($data, $row); 
     } */ 

     $list = array(); 

      // Append results to array 
      array_push($list, array("## START OF USER TABLE ##")); 
      while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
       array_push($list, array_values($row)); 
      } 
      array_push($list, array("## END OF USER TABLE ##")); 

      // Output array into CSV file 
      $fp = fopen('php://output', 'w'); 
      header('Content-Type: text/csv'); 
      header('Content-Disposition: attachment; filename="file.csv"'); 
      foreach ($list as $ferow) { 
       fputcsv($fp, $ferow); 
      } 

    } 

:ここではコードです

include_once 'dbconfig.php'; 
$query = "SELECT * FROM users"; 
$crud->save($query); 

file.csvになり輸出正しくは、私はまた、値が取られているところからMySQLのテーブルの列の名前を含めたいですから出てくる。

ありがとうございます!

+0

をhttp://stackoverflow.com/questions/4165195/mysql-query-to-get-column-namesを参照してください:それは私がやっている何をしようとしている誰もがお役に立てば幸いです – dbugger

答えて

0

テーブルヘッドをcsvに投稿する際に問題が発生していたので、別のアプローチをとった。

public function export($table) 
    { 

     $stmt2 = $this->db->prepare("DESCRIBE ".$table); 
     $stmt2->execute(); 

     if ($stmt2->rowCount()>0) { 
     while ($row = $stmt2->fetch(PDO::FETCH_ASSOC)) { 
      $csv_output .= $row['Field'].", "; 
      $i++; 
     } 
     } 
     $csv_output .= "\n"; 

     $stmt3 = $this->db->prepare("SELECT * FROM ".$table); 
     $stmt3->execute(); 

     while ($rowr = $stmt3->fetch(PDO::FETCH_BOTH)) { 
     for ($j=0;$j<$i;$j++) { 
      $csv_output .= $rowr[$j].", "; 
     } 
     $csv_output .= "\n"; 
     } 

     $filename = "raport_proiecte_".date("Y-m-d_H-i",time()).".csv"; 
     header("Content-Type: application/xls");  
     header("Content-Disposition: attachment; filename=$filename"); 
     header("Pragma: no-cache"); 
     header("Expires: 0"); 
     print $csv_output; 
     exit; 

    } 
関連する問題