1

我有一个名为 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

4 回答 4

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

于 2013-03-02T11:07:15.850 回答
2

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

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

如果你想导入然后这样做

 LOAD DATA INFILE '/path/file.txt' INTO TABLE db2.my_table;
于 2013-03-02T11:09:06.017 回答
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));
于 2013-03-02T11:06:40.250 回答
1

我想,你想要这个:

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

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

于 2013-03-02T11:09:49.603 回答