/** * Add an Artist to the database or get its key if it exists * @param name str: the name of the artist to add * @return int: the primary key added or found */ public function addArtist($name) { //is this name already in the collection? $q = Doctrine_Query::create()->select('a.id')->from('Artist a')->where('a.name = ?', $name); $result = $q->fetchOne(); if (is_object($result) && $result->id > 0) { $retId = $result->id; unset($q, $result); return (int) $retId; } else { $item = new Artist(); $item->name = $name; $item->save(); $id = $item->getId(); $item->free(); unset($item, $q, $result); return (int) $id; } }
$saved = $track->save($dbc, "temas"); if ($saved === TRUE) { // ************************* // OBTENGO DATOS DEL TRACK $log->add("getting track id..."); $trackId = $track->getId(); // ************************* // ************************* // OBTENGO DATOS DEL ARTISTA $log->add("getting artist id..."); if ($trackId != NULL) { $artist = new Artist(); $log->add("searching db for artist=" . $track->getArtistName()); $artist->loadFromName($dbc, $track->getArtistName()); if ($artist->getMaches() == "1") { $artistId = $artist->getId(); $log->add("found artist={$artistId}"); } else { $log->add("artist not found"); $log->add("saving new artist info..."); $artist->setName($track->getArtistName()); $savedArtist = $artist->save($dbc, "artistas"); if ($savedArtist == TRUE) { $artistId = $artist->getId(); $log->add("new artist found={$artistId}..."); } else { $artistId = NULL; $log->add("ERROR saving artist"); } } }