2011-09-01 91 views
0

我想把我的mysql数据库中的电子邮件地址放在一个文本文件中。 我会创建这个每次有一个新的注册, 所以正常;我应该把这个代码在我register.php:Mysql数据库到.txt文件

(连接到数据库后):

mysql_query("SELECT mail FROM users INTO OUTFILE 'test.txt'") or die("failed"); 

但我总是得到“失败”。这段代码有什么问题,或者有其他方法吗?

谢谢!

+0

您有权限写入此目录 –

+2

...'或死亡(mysql_error())'会告诉它。 – glglgl

+0

使用你用来连接mysql的用户具有FILE权限 – ajreal

回答

3

弗朗西斯,

一个更简单的方法来做到这一点是简单地执行从壳查询:

mysql databasename -e "SELECT mail FROM users" > test.txt 
+0

此外,你可以编写一个脚本来重新编译列表,并将其放入crontab中以便每晚运行。脚本也可以更好地格式化它。 – tzakrajs

+0

不可能,我无法从我自己的shell中访问我的数据库。 (托管在godaddy.com上),仅限于phpMyAdmin –

+0

另外,我发现-s标志非常有用。它将删除所有ascii艺术行/列格式并打印出数值。 – nathan

1

也许你可以使用查询选择你想要的所有数据,比创建一个文本文件并保存,使用PHP。

+0

可能是一个解决方案!但是: 警告:fopen(testFile.txt)[function.fopen]:未能打开流:第10行D:\ Hosting \ xxx \ html \ login \ saver.php中的权限被拒绝 无法打开文件 –

+0

Make确保您在要写入文件的文件夹中具有适当的权限。 –

1

您是否知道将文件写入哪个目录?

您连接到mysql的用户将需要能够将文件写入此目录。

man chmod

查看如何更改权限。您可能至少需要像chmod u + w这样的用户。

1

在执行mysql查询之前,您需要创建具有写入权限的文件(rw_r_ rw)。在PHP中,这是这样完成的:

$file= 'test.txt'; 
touch($file); 
chmod($file, 0646);