PHP将800条记录从数据库写入文件(.txt)

PHP将800条记录从数据库写入文件(.txt),php,mysql,Php,Mysql,我正试图访问数据库中的记录,超过8000条,共30列,并写入由制表符分隔的文本文件。 我的php代码是: $fp1 = fopen( 'obspg.txt', 'w' ); fwrite( $fp1,"RETSKU\tProduct Title\tDetailed Description\tProduct Condition\tSelling Price\tAvailability\tProduct URL\tImage URL\tManufacturer Part Number\tMan

我正试图访问数据库中的记录,超过8000条,共30列,并写入由制表符分隔的文本文件。 我的php代码是:

 $fp1 = fopen( 'obspg.txt', 'w' );
  fwrite( $fp1,"RETSKU\tProduct Title\tDetailed Description\tProduct Condition\tSelling Price\tAvailability\tProduct URL\tImage URL\tManufacturer Part Number\tManufacturer Name\tCategorization\tGender\tsize\tColor\n");
  //retrive records from database and write to file
  $result = mysqli_query($con,"SELECT * FROM `TABLE 1` ");
  while($row = mysqli_fetch_array($result))
  {
     fwrite($fp1,$row[`id`]."\t".$row[`title`]."\t".  $row[`description`]."\t".$row[`condition`]."\t". $row[`price`]."\t".$row[`availability`]."\t".$row[`link`]."\t". $row[`image_link`]."\t".$row[`mpn`]."\t".$row[`brand`]."\t".$row[`google_product_category`]."\t".$row[`Gender`]."\t".$row[`size`]."\t".$row[`Color`]."\n");
  } 
  fclose( $fp1 );

但执行时间太长了。如何提高代码的性能?我不能在我的服务器上使用超过25%的使用率

构造要写入变量的数据,只需对文件进行一次写入。它的效率要高得多

$fp1 = fopen( 'obspg.txt', 'w' );

$outPut = "RETSKU\tProduct Title\tDetailed Description\tProduct Condition\tSelling Price\tAvailability\tProduct URL\tImage URL\tManufacturer Part Number\tManufacturer Name\tCategorization\tGender\tsize\tColor\n";

//retrive records from database and write to file
$result = mysqli_query($con,"SELECT * FROM `TABLE 1` ");
while($row = mysqli_fetch_array($result))
{
 $outPut .= $row[`id`]."\t".$row[`title`]."\t".  $row[`description`]."\t".$row[`condition`]."\t". $row[`price`]."\t".$row[`availability`]."\t".$row[`link`]."\t". $row[`image_link`]."\t".$row[`mpn`]."\t".$row[`brand`]."\t".$row[`google_product_category`]."\t".$row[`Gender`]."\t".$row[`size`]."\t".$row[`Color`]."\n";
} 

fwrite( $fp1,$outPut);
fclose( $fp1 );

不要在文件中写入800次,只写入1次。循环遍历数据,构造一个包含所有内容的单一变量,并将其写入文件中。@andrew这样做时,您可能很容易遇到内存限制。流式传输到文件中的效率不应该太低。文件始终保持打开状态,并且最终需要写入相同数量的数据。它不起作用。我的数据有问题吗?有些字段可能是空的。你能看到任何错误消息吗?确切的问题是什么?$row[
price
]是十进制的。我不明白为什么$row[price]在这种情况下是十进制的。我猜你会得到一个没有输出的回复。若内存被超过,你们可以将其设置为每500行写入文件,这应该很容易做到。