我从SQL提取数据并写入csv。但是在文件中,我连续看到两次记录。发生什么事了?
“ 2018-11-05 15:50:41”,“ 2018-11-05 15:50:41”,1078,1078
<?php
$connect = oci_connect("login","pass","db");
$output = fopen("graph.csv", "a");
//fputcsv($output, array('TIME','Orders'));
$query = "SELECT TO_CHAR(SYSDATE, 'YYYY-mm-dd HH24:MI:ss'), count(items) FROM box_table";
$result = oci_parse($connect, $query);
$r=oci_execute($result);
while ($row = oci_fetch_array($result, OCI_BOTH)) {
fputcsv($output, $row);
}
fclose($output);
?>
答案 0 :(得分:4)
问题在于,在抓取过程中,您使用OCI_BOTH
来抓取数据,该操作将数据作为关联数组和数字索引值集进行抓取。
OCI_BOTH 返回具有关联索引和数字索引的数组。 这与OCI_ASSOC + OCI_NUM相同,并且是默认行为。
while ($row = oci_fetch_array($result, OCI_BOTH))
使用OCI_ASSOC
或OCI_NUM
...
while ($row = oci_fetch_array($result, OCI_ASSOC))