static function save_sqlite($unique_keys, $data, $table_name = "swdata", $verbose = 2)
 {
     $ds = SW_DataStoreClass::create();
     if (count($data) == 0) {
         return;
     }
     if (!array_key_exists(0, $data)) {
         $data = array($data);
     }
     # convert special types
     foreach ($data as &$row) {
         foreach ($row as $key => &$value) {
             if ($value instanceof DateTime) {
                 $new_value = clone $value;
                 $new_value->setTimezone(new DateTimeZone('UTC'));
                 $value = $new_value->format(DATE_ISO8601);
                 assert(strpos($value, "+0000") !== FALSE);
                 $value = str_replace("+0000", "", $value);
             }
         }
     }
     $result = $ds->request(array('maincommand' => 'save_sqlite', 'unique_keys' => $unique_keys, 'data' => $data, 'swdatatblname' => $table_name));
     if (property_exists($result, 'error')) {
         throw new Exception($result->error);
     }
     if ($verbose == 2) {
         $sdata = $data[0];
         $pdata = array();
         foreach ($sdata as $key => $value) {
             $pdata[scraperwiki::unicode_truncate($key, 50)] = scraperwiki::unicode_truncate($value, 50);
         }
         if (count($data) >= 2) {
             $pdata["number_records"] = "Number Records: " . count($data);
         }
         scraperwiki::sw_dumpMessage(array('message_type' => 'data', 'content' => $pdata));
     }
     return $result;
 }
 static function save_sqlite($unique_keys, $data, $table_name = "swdata", $verbose = 2)
 {
     $ds = SW_DataStoreClass::create();
     $result = $ds->request(array('save_sqlite', $unique_keys, $data, $table_name));
     if (property_exists($result, 'error')) {
         throw new Exception($result->error);
     }
     if ($verbose == 2) {
         if (array_key_exists(0, $data)) {
             $sdata = $data[0];
         } else {
             $sdata = $data;
         }
         $pdata = array();
         foreach ($sdata as $key => $value) {
             $pdata[scraperwiki::unicode_truncate($key, 50)] = scraperwiki::unicode_truncate($value, 50);
         }
         if (array_key_exists(0, $data) && count($data) >= 2) {
             $pdata["number_records"] = "Number Records: " . count($data);
         }
         scraperwiki::sw_dumpMessage(array('message_type' => 'data', 'content' => $pdata));
     }
     return $result;
 }