我试图从SQL中提取数据,然后将其写入文本文件。这在一定程度上做到了这一点, 但它仅从读取test:test<br>文本文件 的表中拉出1 。
test:test<br>
我希望能够从表中提取所有数据,然后以诸如此类的列表格式发布到文本文件中…
test:test test2:test2 test3:test3
我需要找出我做错了什么。
<?php $sql = mysql_query("SELECT * FROM _$setprofile ORDER BY fc DESC"); while($row = mysql_fetch_array($sql)){ $user = $row['user']; $pass = $row['pass']; $accounts = "$user:$pass<br>"; //Functionsss! $file = "backups/$newcode.txt"; file_put_contents($file, $accounts); } echo "<a href=backups/$newcode.txt>TEST!</a>"; ?>
该file_put_contents()函数将覆盖整个文件- 这就是为什么每次都只获得最后一条记录的原因。
file_put_contents()
您可以使用fopen()和fwrite()代替。
fopen()
fwrite()
尽管比构造一个大字符串并使用单个调用稍微复杂一些file_put_contents,但是如果您有很多记录,这也不会耗尽内存。
file_put_contents
<?php $file = "backups/$newcode.txt"; $f = fopen($file, 'w'); // Open in write mode $sql = mysql_query("SELECT * FROM _$setprofile ORDER BY fc DESC"); while($row = mysql_fetch_array($sql)) { $user = $row['user']; $pass = $row['pass']; $accounts = "$user:$pass<br>"; // Or "$user:$pass\n" as @Benjamin Cox points out fwrite($f, $accounts); } fclose($f); echo "<a href=backups/$newcode.txt>TEST!</a>"; ?>