我有一个名为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);
}
答案 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);
答案 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);