Как я могу сохранить файл после SELECT ... INTO OUTFILE 'result.csv' - PullRequest
2 голосов
/ 29 ноября 2010

Я использую этот запрос для выгрузки таблицы в CSV-файл:

$sql = "SELECT * 
        INTO OUTFILE 'result.csv'
        FIELDS TERMINATED BY ';'
        FROM tableName";

Я получаю файл result.csv в папке базы данных mysql

Как я могу сохранить его в корнемой сайт?

Ответы [ 2 ]

1 голос
/ 29 ноября 2010

Вместо result.csv укажите путь, по которому вы хотите его сохранить:

$sql = "SELECT * 
        INTO OUTFILE '/path/to/your/site/result.csv'
        FIELDS TERMINATED BY ';'
        FROM tableName";
0 голосов
/ 04 декабря 2010

этот код может экспортировать таблицу MySQL в CSV-файл, я проверил его с большой таблицей

<?php 
// tested with success
$db_name     = "db_name";
$db_password = "pass";
$db_link     = mysql_connect("localhost", "root", $db_password);
mysql_select_db($db_name, $db_link);
mysql_query("SET NAMES UTF8");

$table = "table_name";

function assoc_query_2D($sql, $id_name = false){
  $result = mysql_query($sql);
  $arr = array();
  $row = array();
  if($result){
    if($id_name == false){
      while($row = mysql_fetch_assoc($result))
        $arr[] = $row;
    }else{
      while($row = mysql_fetch_assoc($result)){
        $id = $row['id'];
        $arr[$id] = $row;
      }
    }
  }else
      return 0;

  return $arr;
}

function query_whole_table($table, $value = '*'){
    $sql = "SELECT $value FROM $table";
  return assoc_query_2D($sql);
}

$export_str = "";
$result = query_whole_table($table);

foreach($result as $record){
  $export_str .= implode(";",$record) . "\n";
}
// add time to fileName
$date = time(); 
// output the file 
// we can set a header to send it directly to the browser
file_put_contents($date.'_'.$table."_export.csv", $export_str);
?>
...