Exemplo n.º 1
0
 /**
  * Insert (or update if already existing) a list of Sosa individuals
  * @param array $sosa_records
  */
 public function insertOrUpdate($sosa_records)
 {
     if (!$this->is_setup) {
         return;
     }
     $treeid = $this->tree->getTreeId();
     $userid = $this->user->getUserId();
     $questionmarks_table = array();
     $values_table = array();
     $i = 0;
     foreach ($sosa_records as $row) {
         $gen = Functions::getGeneration($row['sosa']);
         if ($gen <= self::MAX_DB_GENERATIONS) {
             $questionmarks_table[] = '(:tree_id' . $i . ', :user_id' . $i . ', :sosa' . $i . ', :indi_id' . $i . ', :gen' . $i . ', :byear' . $i . ', :dyear' . $i . ')';
             $values_table = array_merge($values_table, array('tree_id' . $i => $treeid, 'user_id' . $i => $userid, 'sosa' . $i => $row['sosa'], 'indi_id' . $i => $row['indi'], 'gen' . $i => Functions::getGeneration($row['sosa']), 'byear' . $i => $row['birth_year'], 'dyear' . $i => $row['death_year']));
         }
         $i++;
     }
     $sql = 'REPLACE INTO `##maj_sosa`' . ' (majs_gedcom_id, majs_user_id, majs_sosa, majs_i_id, majs_gen, majs_birth_year, majs_death_year)' . ' VALUES ' . implode(',', $questionmarks_table);
     Database::prepare($sql)->execute($values_table);
 }