php从db字段中检索所有数据并存储到文件中

时间:2013-03-02 10:53:23

标签: php

我有一个名为users的表和一个名为email

的字段

我想从此字段中检索(所有)电子邮件,然后将其存储在文件

我尝试使用while循环,然后我使用了file_put_contents,但这只保存了第一列而不是整个数据

如何将从while循环中检索到的所有电子邮件存储在文件中

$data=$db->query("select * from users order by userid desc");

 while($row=$data->fetch_assoc()){
 $string=$row['email'].",";
    file_put_contents("data.txt",$string);
    }

4 个答案:

答案 0 :(得分:2)

我认为最好将file_put_contents()移出while循环,只有在将所有数据收集到字符串中时才调用它。

试试这个:

$data=$db->query("select * from users order by userid desc");

$string="";
while($row=$data->fetch_assoc()){
    $string .= $row['email'].",";
}

file_put_contents("data.txt",$string);

ps:

如果要将数据附加到文件(通常),则应使用

file_put_contents("data.txt",$string,FILE_APPEND);

http://php.net/manual/en/function.file-put-contents.php

答案 1 :(得分:2)

您可以使用MySQL内置函数将数据导出到文件

 SELECT * FROM `table_name` INTO OUTFILE /path/file.txt

如果您想导入,请执行此操作

 LOAD DATA INFILE '/path/file.txt' INTO TABLE db2.my_table;

答案 2 :(得分:1)

你可能会更好......

$data = $db->query("select * from users order by userid desc");

$emails = array();
while ($row = $data->fetch_assoc()) {
    $emails[] = $row['email'];
}

file_put_contents("data.txt", implode(', ', $emails));

答案 3 :(得分:1)

我想,你想要这个:

file_put_contents("data.txt", $string, FILE_APPEND);

请参阅http://php.net/manual/en/function.file-put-contents.php