/** * saves a sql data set into migration.db * @param OC_DB_StatementWrapper $data a sql data set returned from self::prepare()->query() * @param array $options array of copyRows options * @return void */ private function insertData($data, $options) { $return = array(); // Foreach row of data to insert while ($row = $data->fetchRow()) { // Now save all this to the migration.db foreach ($row as $field => $value) { $fields[] = $field; $values[] = $value; } // Generate some sql $sql = "INSERT INTO `" . $options['table'] . '` ( `'; $fieldssql = implode('`, `', $fields); $sql .= $fieldssql . "` ) VALUES( "; $valuessql = substr(str_repeat('?, ', count($fields)), 0, -2); $sql .= $valuessql . " )"; // Make the query $query = $this->prepare($sql); $query->execute($values); // Do we need to return some values? if (array_key_exists('idcol', $options)) { // Yes we do $return[] = $row[$options['idcol']]; } else { // Take a guess and return the first field :) $return[] = reset($row); } $fields = ''; $values = ''; } return $return; }