mysql foreach fwrite

fis*_*man 0 php foreach fwrite

我在这里使用一些代码,将mysql查询数据传输到json数据并写入文件.问题出在哪儿?为什么文件是零kb?

while($row = mysql_fetch_array($Query)){ 
  $arr = array ('name'=>$row['name']);
  $jsondata = json_encode($arr);
  $countfile="data.txt";
  if(!file_exists($countfile))
  {
    fopen($countfile,"w");
  } 
  $fp = fopen($countfile, 'r');
  fwrite($fp, $jsondata);
  fclose($fp);
}
Run Code Online (Sandbox Code Playgroud)

Kin*_*nch 5

好几件事.

  • 您不需要(并且应该避免)在每次迭代中打开文件
  • 你打开文件只读(r)

在这样的事情应该这样做

$countfile="data.txt";
$fp = fopen($countfile, 'w');
while($row = mysql_fetch_array($Query))
{ 
    $arr = array ('name'=>$row['name']);
    $jsondata = json_encode($arr);

    fwrite($fp, $jsondata);
}
fclose($fp);
Run Code Online (Sandbox Code Playgroud)

另外,你将单独的json结构附加到文件中,可能不是,你想要什么.您应该先将所有要存储的内容收集到一个 json结构中然后保存

$data = array();
while($row = mysql_fetch_array($Query))
{ 
    $data[] = array ('name'=>$row['name']);

}
file_put_contents('data.txt', json_encode($data));
Run Code Online (Sandbox Code Playgroud)

这感觉更像你可能正在寻找的东西.