我环顾四周似乎没有任何作用:
$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文件。有任何想法吗?非常感谢。
答案 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.'
重定向应该是命令