Source for file CDDB_Mdb2_Import.php
Documentation is available at CDDB_Mdb2_Import.php
define('NET_CDDB_MDB2_DSN', 'mysql://root@127.0.0.1/freedb');
//define('NET_CDDB_FREEDB_PATH', '/Volumes/keith.palmer/freedb');
define('NET_CDDB_FREEDB_PATH', '/Users/keith/Sites/Net/docs/FreeDB');
require_once 'Net/CDDB.php';
require_once 'Net/CDDB/Utilities.php';
require_once 'Net/CDDB/Disc.php';
'portability' => MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_EMPTY_TO_NULL ,
$mdb2->setFetchMode (MDB2_FETCHMODE_ASSOC );
if (PEAR ::isError ($mdb2)) {
die ($mdb2->getMessage ());
//$mdb2->exec('DELETE FROM artist');
//$mdb2->exec('DELETE FROM disc');
//$mdb2->exec('DELETE FROM track');
foreach ($dirs as $dir) {
print ('Analyzing directory: ' . $dir . "\n");
while (false !== ($file = readdir($dh))) {
if (strlen($file) == 8 and $file{0 } != '.') {
// First, check to see if the artist is already in the database
// Check to see if the genre is already in the database
$disc_id = Net_CDDB_MDB2_Import_disc($disc->getDiscId (), $category, $disc->getArtist (), $disc->getTitle (), $disc->getDiscYear (), $disc->getGenre (), $disc->getDiscLength (), $disc->getRevision (), $disc->getProcessedBy (), $disc->getSubmittedVia (), $disc->getDiscExtraData (), $disc->getDiscPlayorder ());
for ($i = 0; $i < $disc->numTracks (); $i++ )
Net_CDDB_MDB2_Import_track($disc_id, $i + 1 , $disc->getTrackArtist ($i), $disc->getTrackTitle ($i), $disc->getTrackOffset ($i), $disc->getTrackExtraData ($i));
print ('Could not open directory: ' . $dir . "\n");
$name = substr($name, 0 , 255 );
$res = $mdb2->query ('SELECT id FROM artist WHERE name = ' . $mdb2->quote ($name));
$id = $mdb2->nextID ('artist__id');
$res = $mdb2->exec('INSERT INTO artist ( id, name, create_datetime, mod_datetime ) VALUES ( ' . $id . ', ' . $mdb2->quote ($name) . ', NOW(), NOW() ) ');
if (PEAR ::isError ($res)) {
$res = $mdb2->query ('SELECT id FROM genre WHERE name = ' . $mdb2->quote ($name, 'text'));
$id = $mdb2->nextID ('genre__id');
$res = $mdb2->exec('INSERT INTO genre (id, name, create_datetime) VALUES ( ' . $id . ', ' . $mdb2->quote ($name, 'text') . ', NOW() )');
if (PEAR ::isError ($res)) {
$res = $mdb2->query ('SELECT id FROM category WHERE name = ' . $mdb2->quote ($name));
$id = $mdb2->nextID ('category__id');
$res = $mdb2->exec('INSERT INTO category ( id, name, create_datetime ) VALUES ( ' . $id . ', ' . $mdb2->quote ($name) . ', NOW() )');
if (PEAR ::isError ($res)) {
function Net_CDDB_MDB2_Import_disc($discid, $category_name, $artist_name, $title, $year, $genre_name, $length, $revision, $processed_by, $submitted_via, $extra, $playorder)
$res = $mdb2->query ('SELECT id FROM disc WHERE discid = ' . $mdb2->quote ($discid) . ' AND category_id = ' . $category_id);
$id = $mdb2->nextID ('disc__id');
$res = $mdb2->exec('INSERT INTO disc ( id, discid, category_id, artist_id, title, year, genre_id, length, revision, processed_by, submitted_via, extra_data, playorder ) VALUES ( ' . $id . ', ' . $mdb2->quote ($discid) . ', ' . $category_id . ', ' . $artist_id . ', ' . $mdb2->quote ($title) . ', ' . $year . ', ' . $genre_id . ', ' . $length . ', ' . $revision . ', ' . $mdb2->quote ($processed_by) . ', ' . $mdb2->quote ($submitted_via) . ', ' . $mdb2->quote ($extra) . ', ' . $mdb2->quote ($playorder) . ' ) ');
if (PEAR ::isError ($res)) {
$res = $mdb2->query ('SELECT disc_id FROM track WHERE disc_id = ' . $disc_id . ' AND num = ' . $mdb2->quote ($track_num));
if (PEAR ::isError ($res)) {
die ($res->getMessage () . "\n");
// Already inserted, don't bother
// Insert the track record
$res = $mdb2->exec('INSERT INTO track ( disc_id, num, artist_id, title, toffset ) VALUES ( ' . $disc_id . ', ' . $track_num . ', ' . $artist_id . ', ' . $mdb2->quote ($title) . ', ' . $offset . ' ) ');
if (PEAR ::isError ($res)) {
Documentation generated on Mon, 11 Mar 2019 14:56:54 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.
|