Php MySQL转储为CSV
我环顾四周,似乎什么都不管用:Php MySQL转储为CSV,php,mysql,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); 我尝试的所有操作
$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文件。有什么想法吗?非常感谢。试试SQLYog,它的工作方式很有魅力 这里有一个免费社区版的下载链接 然后你所要做的就是右键点击有问题的表格,然后去导出,选择CSV等等 如果要查找代码如何执行,请在导出表后查看历史记录选项卡,查看执行了哪些代码。执行时会发生什么: mysqldump数据库表>/path/to/file.csv[从命令行剪切命令的其余部分] 它有用吗 您的最后一行请尝试:
$cmd .= " --lock-tables=false --no-create-info --tab=/tmp --fields-terminated-by=','";
单引号不会在单引号字符串中转义。我找到了通过命令行使用mysql实现这一点的方法--
'.$file.
重定向应该是命令的最后(或第一)部分@clazzy的答案是我找到的最好的纯PHP解决方案
$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);