2011-09-01 89 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);