【问题标题】:export mysql list of tables from mysql to csv file using php使用php将mysql列表从mysql导出到csv文件
【发布时间】:2014-02-27 15:32:18
【问题描述】:

我想知道是否有人可以向我展示如何将 MySQL 数据库中大约 50 个表导出到 CSV 文件的示例 PHP 代码。我的数据库名称是“samples”,我在这个数据库下有大约 49 个表。我希望将此数据库下的每个表(大约有 20,00 行)导出到 csv 文件。

谢谢您,期待您的帮助。顺便说一句对不起,我是 PHP 新手。

【问题讨论】:

  • 您是否使用 phpmyadmin 或其他 gui 之类的工具进行数据库管理?

标签: php mysql export


【解决方案1】:

如果您有权访问 MySQL 服务器,则可以使用 SELECT INTO OUTFILE 为您完成大部分工作:

SELECT * FROM my_table
  INTO OUTFILE 'my_table.csv'
  FIELDS TERMINATED BY ','
  OPTIONALLY ENCLOSED BY '"'
  ESCAPED BY '\\'
  LINES TERMINATED BY '\n';

如果您使用的是 Windows,您可能希望使用 \r\n 的行分隔符。

如果您没有指定生成的 CSV 文件的完整路径,它将进入 MySQL 服务器的数据目录,就在表旁边。

【讨论】:

    【解决方案2】:

    通常我会使用 MySQL Workbench 或 SQLYog 之类的工具来执行此操作。但是,如果您在 php 中需要它,那么有一些关于从 sql 导出到 php 的很棒的教程。

    这样的事情会起作用,但您需要遍历表格:

    http://www.ineedtutorials.com/code/php/export-mysql-data-to-csv-php-tutorial

    【讨论】:

      【解决方案3】:

      这是直接从 mysql 终端导出 1 个表的方法。我刚刚使用了 tmp 目录作为示例购买,您可以将路径更改为您喜欢的任何内容:

      select * from product where condition1 order by condition2 desc INTO OUTFILE   '/tmp/myfile.csv' FIELDS    TERMINATED BY ',' ESCAPED BY '\\' OPTIONALLY ENCLOSED BY '"';
      

      或者用php和mysqli:

      <?php
      $con=mysqli_connect("example.com","uname","password","my_db");
       // Check connection
      if (mysqli_connect_errno())
       {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
        }
      
       $result = mysqli_query($con,"  select * from product where condition1 order by condition2 desc INTO    OUTFILE   '/tmp/myfile.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';");
      

      【讨论】:

      • 你的字符串中的双引号没有转义是吗?
      【解决方案4】:
      Try...
      Create csv file.
      <?php 
      mysql_connect('localhost', 'root', '');
      mysql_select_db('mydb');
      $qry = mysql_query("SELECT * FROM tablename");
      $data = "";
      while($row = mysql_fetch_array($qry)) {
        $data .= $row['field1'].",".$row['field2'].",".$row['field3'].",".$row['field4']."\n";
      }
      $file = 'file.csv';
      file_put_contents($file, $data);
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-06
        • 1970-01-01
        • 2014-05-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多