将所有mysql结果写入文件?

时间:2018-11-22 10:35:28

标签: php mysql

我正在尝试制作一个程序,将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;将给出所有这些列。我在做什么错了?

1 个答案:

答案 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