Esempio n. 1
0
 public static function getColumnId($name)
 {
     $name = trim($name);
     if (is_null(self::$_column_groups)) {
         self::$_column_groups = array();
         foreach (ColumnGroup::search(1) as $group) {
             self::$_column_groups[$group->name] = $group->id;
         }
     }
     if (!array_key_exists($name, self::$_column_groups)) {
         self::$_column_groups[$name] = ColumnGroup::insert(array('name' => $name))->id;
     }
     return self::$_column_groups[$name];
 }
Esempio n. 2
0
$insert_unit = array();
foreach (ImportData::search(1)->order('no')->volumemode(10000) as $importdata) {
    $data = json_decode($importdata->data);
    // 只處理商業登記
    if ('商業登記' !== $data->{'類型'}) {
        continue;
    }
    $insert_unit[] = "(" . intval($importdata->no) . ", 2, {$data->fetch_at})";
    foreach ($data as $name => $value) {
        // 類型和商業統一編號不需要了
        $name = trim($name);
        if (in_array($name, array('類型', '商業統一編號', 'fetch_at'))) {
            continue;
        }
        if (!($column_id = $columns[$name])) {
            $c = ColumnGroup::insert(array('name' => $name));
            $column_id = $c->id;
            $columns[$name] = $column_id;
        }
        $insert_data[] = "(" . intval($importdata->no) . ", {$column_id}, " . $wdb->quoteWithColumn($table, json_encode($value, JSON_UNESCAPED_UNICODE), 'value') . ')';
    }
    if (count($insert_data) > 1000) {
        $wdb->query("INSERT IGNORE INTO `unit_data` (`id`, `column_id`, `value`) VALUES " . implode(', ', $insert_data));
        $wdb->query("INSERT IGNORE INTO `unit` (`id`, `type`, `updated_at`) VALUES " . implode(', ', $insert_unit));
        $insert_unit = array();
        $insert_data = array();
    }
    /*var_dump($data);
      exit;*/
}
if ($insert_data) {