使用php将数据从数据库导出到csv文件

时间:2014-01-20 09:28:09

标签: php csv

我能够将数据库导出到csv,但我的代码以某种方式将数据导入我的csv文件两倍。同一列两个并排。这是我的代码。我认为我的问题在于内幕。任何帮助将不胜感激。

<?php

$db = new sqlite3('I:\preethi\webbs.db');

$headers = array

('Id','CompanyId','DateTime','Serial','DeviceId','AgentAId','GpsAddress','Targa','CommonRoadDescription'

,'RoadCivicNumber','VehicleBrandDescription','VehicleModelDescription' ,'VerbaliVehicleTypeDescription','CommonColorVehicleDescription','VerbaliRuleOneCode','VerbaliRuleOneDes

cription','VerbaliRuleOnePoints'  

    ,'VerbaliClosedNoteDescription','Points','VerbaliMissedNotificationDescription 

','MissedNotificationNote','StatementNote');

    $results = $db->query('select'.implode (',',$headers).'from VerbaliData');

    //$results = $db->query( 'select 
Id   ,CompanyId  ,DateTime  ,Serial  ,DeviceId  ,AgentAId  

,GpsAddress  ,Targa  ,CommonRoadDescription  ,RoadCivicNumber  ,VehicleBrandDescription  

,VehicleModelDescription  ,VerbaliVehicleTypeDescription  ,CommonColorVehicleDescription  

,VerbaliRuleOneCode  ,VerbaliRuleOneDescription  ,VerbaliRuleOnePoints  ,VerbaliClosedNoteDescription  

,Points  ,VerbaliMissedNotificationDescription  ,MissedNotificationNote  ,StatementNote  from 

VerbaliData');


    $fp = fopen('explores.csv', 'w');

    fputcsv($fp,$headers);

    while ($row = $results->fetchArray()) {
             fputcsv($fp, $row);
    }

    fclose($fp);

    ?>

2 个答案:

答案 0 :(得分:1)

试试:

while($row = $results->fetchArray(SQLITE3_NUM)) {

while($row = $results->fetchArray(SQLITE3_ASSOC)) {

更多详情:http://php.net/manual/en/sqlite3result.fetcharray.php

答案 1 :(得分:0)

你的代码中有一个小问题fetchArray()返回一个关联的一个数组和一个编号的数组,使用fetchArray(SQLITE3_NUM)或fetchArray(SQLITE3_ASSOC)。