MySQL DUMP为CSV

时间:2010-03-30 18:15:22

标签: php mysql

我环顾四周似乎没有任何作用:

$file = '/path/to/file.csv';
$cmd = 'mysqldump DATABASE TABLE > '.$file.' --host=localhost --user=USER --password=PASS';
$cmd .= ' --lock-tables=false --no-create-info --tab=/tmp --fields-terminated-by=\',\'';
exec($cmd);

我尝试的所有内容都会创建一个空的CSV文件。有任何想法吗?非常感谢。

4 个答案:

答案 0 :(得分:5)

我找到了一种通过命令行使用mysql实现此目的的方法 -

        $file = '/path/to/file.csv';
        if(is_file($file))
            unlink($file);      
        $sql = 'SELECT * FROM database.table';
        $cmd = 'mysql --host=localhost --user=USER --password=PASS --quick -e \''.$sql.'\' > '.$file;
        exec($cmd);

答案 1 :(得分:2)

尝试使用SQLYog,就像魅力一样。

以下是免费社区版

的下载链接

http://www.softpedia.com/progDownload/SQLyog-Community-Edition-Download-82252.html

然后您只需右键单击相关表格,然后导出,然后选择CSV等...

如果您要查找代码怎么做,请在导出表后查看历史记录选项卡,看看执行了哪些代码。

答案 2 :(得分:0)

当你这样做时会发生什么:     mysqldump DATABASE TABLE> /path/to/file.csv [从命令行中截取命令的其余部分]?

有用吗?

你的最后一行尝试:

$cmd .= " --lock-tables=false --no-create-info --tab=/tmp --fields-terminated-by=','";

单引号不会在单引号字符串中转义。

答案 3 :(得分:0)

> '.$file.'重定向应该是命令

的最后一个(或第一个)部分