2014-04-30 4 views
-2

следующий код позволяет экспортировать конкретную таблицу из MySQL в формат CSV .. Но я нужен код, который помогает экспортировать в CSV со всей таблицей из MySQL. Пожалуйста, у кого-нибудь есть код. Пожалуйста, поделитесьКак экспортировать mysql в csv включить всю таблицу?

<?php 
    $conn = mysql_connect('localhost', 'xxxx', 'yyyy') or die(mysql_error()); 
    mysql_select_db('zzzz', $conn) or die(mysql_error($conn)); 

    $query = sprintf('SELECT * FROM TABLENAME'); 
    $result = mysql_query($query, $conn) or die(mysql_error($conn));  

    header('Content-Type: text/csv'); 
    header('Content-Disposition: attachment;filename=export.csv'); 

    $row = mysql_fetch_assoc($result); 
    if ($row) { 
     echocsv(array_keys($row)); 
    }  

    while ($row) { 
     echocsv($row); 
     $row = mysql_fetch_assoc($result); 
    } 

    function echocsv($fields) 
    { 
     $separator = ''; 
     foreach ($fields as $field) { 
      if (preg_match('/\\r|\\n|,|"/', $field)) { 
       $field = '"' . str_replace('"', '""', $field) . '"'; 
      } 
      echo $separator . $field; 
      $separator = ','; 
     } 
     echo "\r\n"; 
    } 
?> 
+0

Вы рассматривали цикл через 'INFORMATION_SCHEMA.TABLES'? –

ответ

0

Используйте этот код SHOW TABLES запрос возвращает все таблицы в выбранной БД.

$tablesRes = mysql_query('SHOW TABLES',$conn); 
while($row = mysql_fetch_row($tablesRes)){ 
    $tables[] = $row[0]; 
} 

header('Content-Type: text/csv'); 
header('Content-Disposition: attachment;filename=export.csv'); 

foreach($tables as $table){ 
    $query = 'SELECT * FROM '.$table; 
    $result = mysql_query($query, $conn) or die(mysql_error($conn)); 
    //your csv code here 
} 
Смежные вопросы