Php MySql结果转换为csv

Php MySql结果转换为csv,php,mysql,csv,Php,Mysql,Csv,我正在尝试将mysql查询保存到csv。我搜索并找到了各种选择。这个选项看起来像是漂亮而干净的代码,但不起作用 我犯了一个错误 1045-拒绝用户“用户”@“本地主机”的访问(使用密码:是) 当我将删除到OUTFILE'mytest.csv'中时,它工作正常 (SQL代码简化)这是localhost中“unidimec”的权限错误。请检查“unidimec”的用户权限,并从mysql根用户授予权限。语法为 SELECT Your_Column_Name FROM Your_Table_N

我正在尝试将mysql查询保存到csv。我搜索并找到了各种选择。这个选项看起来像是漂亮而干净的代码,但不起作用

我犯了一个错误

1045-拒绝用户“用户”@“本地主机”的访问(使用密码:是) 当我将
删除到OUTFILE'mytest.csv'
中时,它工作正常


(SQL代码简化)

这是localhost中“unidimec”的权限错误。请检查“unidimec”的用户权限,并从mysql根用户授予权限。

语法为

SELECT Your_Column_Name
    FROM Your_Table_Name
    INTO OUTFILE 'Filename.csv'
    FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n'

我认为您必须授予mysql用户生成文件的权限

使用SSH登录(如果您有专用服务器,则必须联系您的web主机支持人员)

通过以下命令在mysql中使用root登录

mysql -u root -p[password]
登录mysql界面后,授予该用户文件权限

GRANT FILE ON *.* TO 'unidimec'@'localhost';
仔细阅读“输入输出文件”的文档:

选择。。。INTO OUTFILE语句主要用于让您非常快速地将表转储到服务器机器上的文本文件中。如果要在服务器主机以外的其他主机上创建结果文件,通常不能使用SELECT。。。由于无法写入相对于服务器主机文件系统的文件路径,因此无法将其写入OUTFILE

但是,如果MySQL客户端软件安装在远程计算机上,则可以使用诸如MySQL-e“SELECT…”>file_name之类的客户端命令在客户端主机上生成文件

如果可以使用服务器文件系统上的网络映射路径访问远程主机上的文件位置,也可以在服务器主机以外的其他主机上创建生成的文件。在这种情况下,目标主机上不需要存在mysql(或其他mysql客户端程序)


也许可以添加类似“c:/…/mytest.txt”的内容?@MarcElBichon。谢谢你的评论。仍然是相同的错误用户具有完全权限授予*上的所有权限到'unidimec'@'localhost';然后给予同花顺特权;
GRANT FILE ON *.* TO 'unidimec'@'localhost';