diff --git a/Repositories/statistics/scripts/fix-titles_src.php b/Repositories/statistics/scripts/fix-titles_src.php index 9c2027a..9ec93da 100755 --- a/Repositories/statistics/scripts/fix-titles_src.php +++ b/Repositories/statistics/scripts/fix-titles_src.php @@ -49,20 +49,27 @@ 'archive_name' => array( 'sqlserver' => 'db_host', + 'dbname' => 'database_name', 'username' => 'archive_name', 'password' => 'password', ), + +NJS 2009-04-29: Added support for different database name. +Usually, archive_name, database_name and user_name are the same, but they +don't have to be. */ $eprintsdbs = array( 'otago_eprints' => array( 'sqlserver' => 'localhost', + 'dbname' => 'otago_eprints_v3', 'username' => 'otago_eprints', 'password' => 'DrSyntaxRidesAgain', ), 'cardrona' => array( 'sqlserver' => 'localhost', + 'dbname' => 'cardona_v3', 'username' => 'cardrona', - 'password' => 'chautquau', + 'password' => 'DrSyntaxRidesAgain', ), ); @@ -73,14 +80,15 @@ ########################################### $connect = mysql_pconnect($sqlserver,$sqluser,$sqlpass); -$db = mysql_select_db($sqldatabase,$connect) or die("Could not connect"); +$db = mysql_select_db($sqldatabase,$connect) or die("Could not connect to $sqldatabase database.\n"); // NJS 2006-06-14: Generalised connection list for multiple archives. $eprints_connections = array(); foreach ($eprintsdbs as $archive => $details) { $eprints_connections[$archive] = - mysql_connect($details['sqlserver'],$details['username'],$details['password']); + mysql_connect($details['sqlserver'],$details['username'],$details['password']) + or die( "Could not connect to EPrints database with user {$details['username']}.\n"); } /* Get list of all items in database. We only need the distinct archive name @@ -114,7 +122,7 @@ $archive_name = $row['archive_name']; $eprint_id = $row['archiveid']; printf( "Checking %s item %s (%d/%d): ", $archive_name, $eprint_id, ++$count, $total_rows ); - $eprint_name = getePrintName( $eprints_connections[$archive_name], $archive_name, $eprint_id, $eprints_version ); + $eprint_name = getePrintName( $eprints_connections[$archive_name], $eprintsdbs[$archive_name]['dbname'], $eprint_id, $eprints_version ); $update = sprintf(" UPDATE view SET eprint_name = '%s' @@ -142,9 +150,9 @@ mysql_close($connect); // Look up the title corresponding to the specified eprint id. -function getePrintName($connection,$archive,$eprintid,$eprints_version) { +function getePrintName($connection,$dbname,$eprintid,$eprints_version) { // NJS 2006-06-14: DB connection now passed as an argument. - $db = mysql_select_db($archive,$connection); + $db = mysql_select_db($dbname,$connection); // NJS 2007-07-24: Added check for EPrints version, as the // database structure changed between versions 2 and 3. if ( $eprints_version > 2 )