Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 选择后如何保存文件。。。进入输出文件';结果.csv';_Php_Mysql_Sql_Into Outfile - Fatal编程技术网

Php 选择后如何保存文件。。。进入输出文件';结果.csv';

Php 选择后如何保存文件。。。进入输出文件';结果.csv';,php,mysql,sql,into-outfile,Php,Mysql,Sql,Into Outfile,我使用此查询将表转储到csv文件中: $sql = "SELECT * INTO OUTFILE 'result.csv' FIELDS TERMINATED BY ';' FROM tableName"; 我在mysql的db文件夹中得到一个result.csv文件 如何将其保存在网站的根目录下?代替result.csv提供保存路径: $sql = "SELECT * INTO OUTFILE '/path/to/your/

我使用此查询将表转储到csv文件中:

$sql = "SELECT * 
        INTO OUTFILE 'result.csv'
        FIELDS TERMINATED BY ';'
        FROM tableName";
我在mysql的db文件夹中得到一个result.csv文件


如何将其保存在网站的根目录下?

代替
result.csv
提供保存路径:

$sql = "SELECT * 
        INTO OUTFILE '/path/to/your/site/result.csv'
        FIELDS TERMINATED BY ';'
        FROM tableName";

这段代码可以将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);
?>


选择。。。INTO OUTFILE语句主要用于让您非常快速地将表转储到服务器机器上的文本文件中。如果要在服务器主机以外的其他主机上创建结果文件,通常不能使用SELECT。。。由于无法写入相对于服务器主机文件系统的文件路径,因此无法将其写入OUTFILE。但是,如果在远程计算机上安装了MySQL客户端软件,则可以使用诸如MySQL-e“SELECT…”>file_name之类的客户端命令在客户端主机上生成文件。MySQL应该对要保存此文件的路径具有写权限。如果绝对必要,在my.cnf中以user=root行启动mysql并运行相同的命令。