PHP获取SQL-行中有双记录

时间:2018-11-05 14:54:00

标签: php sql

我从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);  

 ?>  

1 个答案:

答案 0 :(得分:4)

问题在于,在抓取过程中,您使用OCI_BOTH来抓取数据,该操作将数据作为关联数组和数字索引值集进行抓取。

  

OCI_BOTH 返回具有关联索引和数字索引的数组。   这与OCI_ASSOC + OCI_NUM相同,并且是默认行为。

while ($row = oci_fetch_array($result, OCI_BOTH))  

使用OCI_ASSOCOCI_NUM ...

while ($row = oci_fetch_array($result, OCI_ASSOC))