我正在尝试制作一个程序,将mysql数据库中一行的所有结果同步到.txt文件。但它不起作用。我希望每个结果都换行。
这是我的代码:
<?php
$db = mysqli_connect("localhost", "username", "pass", "database");
$hwid_query = "SELECT hwid FROM users";
$result = mysqli_query($db, $hwid_query);
//$hwids = mysqli_fetch_assoc($result);
while($row = mysqli_fetch_assoc($result)){
$hwids = $row['hwid'];
echo $hwids;
}
$fp = fopen('lt.txt', 'w');
ftruncate($fp, 0);
fwrite($fp, $hwids);
fclose($fp);
mysqli_close($db);
?>
这将导致文件中的一行仅包含数据库的一列,而echo $hwids;
将给出所有这些列。我在做什么错了?
答案 0 :(得分:2)
在while循环中,您将$hwids
设置为该行的值。下一个信号(例如,数据库的下一行)会将相同的$hwids
覆盖为它的值,然后将其覆盖。最后,您获得了结果的最后一个条目。
有一些解决方案,但在下面的解决方案中,我将根据每次写入的值写入文件:
$file = fopen('lt.txt', 'wb');
while($row = mysqli_fetch_assoc($result)){
$lineToAdd = $row['hwid'] . PHP_EOL; // PHP_EOL = "\n" = Newline
fwrite($file, $lineToAdd);
}
fclose($file);
我基于this answer