コード例 #1
0
ファイル: content.php プロジェクト: olucao/owncloud-core
 /**
  * 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;
 }