OM *_*ity 0 php fopen file fwrite
我有一个结构就像的数组 $data = array{0=>'abc',1=>xyz,2=>tqs}
现在我需要将这些值写入csv文件.我需要在第一列中显示每个值,并且每次在新插入时都有新行以及之前已有的值.
下面是我正在使用的代码,但每次执行它时,我都会得到文件中的最后一个值:
for ($c=0; $c < $num; $c++) {
echo $data[$c];
echo $query = "select prod_sku,prod_name
from
tbl_product
where
prod_sku = '".$data[$c]."'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
if(empty($row)){
print_r($row);
echo 'test';
$fp = fopen("file.csv", "w");
print_r($data[0]);
fputcsv($fp, $data[0]);
fclose($fp);
}
Run Code Online (Sandbox Code Playgroud)
我如何使用PHP实现这一目标?
问题是你fopen在for循环中做,所以每次循环运行时,你的文件都会被重写.移动fopen和fclose循环外,也将努力.像这样;
$fp = fopen("file.csv", "w");
for ($c=0; $c < $num; $c++)
{
$query = "select prod_sku,prod_name from tbl_product where prod_sku = '".$data[$c]."'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
fputcsv($fp, $data);
}
fclose($fp);
Run Code Online (Sandbox Code Playgroud)