\n"; if(file_exists("db.code.version.txt")) { $dbcodeversion_file=file("db.code.version.txt"); $dbcodeversion=trim($dbcodeversion_file[0]); } else { echo "Couldnt load current db.code.version.txt\n"; exit; } //same fix here for mysql 5.1 not truncating the 16 char usernames $DBUSER=substr($DBUSER,0,16); $stmt = $pdo->prepare("SET NAMES latin1"); $stmt->execute(); $q=$pdo->prepare("SELECT val FROM config WHERE var='DBVERSION' AND year='0'"); $q->execute(); $r=$q->fetch(PDO::FETCH_OBJ); $dbdbversion=$r->val; if(!$dbdbversion) { echo "Couldnt get current db version. Is SFIAB properly installed?\n"; exit; } /* Get the fair year */ $q=$pdo->prepare("SELECT val FROM config WHERE var='FAIRYEAR' AND year='0'"); $q->execute(); $r=$q->fetch(PDO::FETCH_OBJ); $config = array('FAIRYEAR' => $r->val); /* Load config just in case there's a PHP script that wants it */ $q=$pdo->prepare("SELECT * FROM config WHERE year='{$config['FAIRYEAR']}'"); $q->execute(); while($r=$q->fetch(PDO::FETCH_OBJ)) $config[$r->var]=$r->val; require_once("../config_editor.inc.php"); // For config_update_variables() if($dbcodeversion && $dbdbversion) { //lets see if they match if($dbcodeversion == $dbdbversion) { echo "DB and CODE are all up-to-date. Version: $dbdbversion\n"; exit; } else if($dbcodeversion<$dbdbversion) { echo "ERROR: dbcodeversion$dbdbversion) { echo "DB update requirements detected\n"; echo "Current DB Version: $dbdbversion\n"; echo "Current CODE Version: $dbcodeversion\n"; echo "Updating database from $dbdbversion to $dbcodeversion\n"; for($ver=$dbdbversion+1;$ver<=$dbcodeversion;$ver++) { if(file_exists("db.update.$ver.php")) { include("db.update.$ver.php"); } if(is_callable("db_update_{$ver}_pre")) { echo "db.update.$ver.php::db_update_{$ver}_pre() exists - running...\n"; call_user_func("db_update_{$ver}_pre"); echo "db.update.$ver.php::db_update_{$ver}_pre() done.\n"; } if(file_exists("db.update.$ver.sql")) { echo "db.update.$ver.sql detected - running...\n"; readfile("db.update.$ver.sql"); echo "\n"; // Dennis If 'system' and 'mysql' do not exist use each section of the sql files not system("sql" // i.e. for windows ISP servers that do not provide system and sql.exe executable exec("mysql -q --help", $outputnotused, $exec_sqlstatus); if(function_exists("system") and $exec_sqlstatus == 0 ) { // echo "
** db_update USING system('mysql ..) on this server!
"; system("mysql --default-character-set=latin1 -h$DBHOST -u$DBUSER -p$DBPASS $DBNAME query($templine)){ echo('
Error performing query!
'.$templine.'
mysqlerror: '.$pdo->errorInfo().'

'); $error_count += 1; $exit_code = -1; // do we bail out here or keep going? keep going for now, get all errors } // Reset temp variable to empty $templine = ''; } } echo "
"; } if($exit_code != 0) { /* mysql failed!, what now? */ $error_count += 1; echo "
ERROR in db_update: Failed to execute query(s) without error!
"; echo "Update scripts bad or system('mysql' .. ) call failed!


"; } } else { echo "Version $ver SQL update file not found - skipping over\n"; } if(is_callable("db_update_{$ver}_post")) { echo "db.update.$ver.php::db_update_{$ver}_post() exists - running...\n"; call_user_func("db_update_{$ver}_post"); echo "db.update.$ver.php::db_update_{$ver}_post() done.\n"; } } if($db_update_skip_variables != true) { echo "\nUpdating Configuration Variables...\n"; config_update_variables($config['FAIRYEAR']); } echo "\nAll done - updating new DB version to $dbcodeversion\n"; $stmt = $pdo->prepare("UPDATE config SET val='$dbcodeversion' WHERE var='DBVERSION' AND year='0'"); $stmt->execute(); } } else { echo "ERROR: dbcodeversion and dbdbversion are not defined\n"; } echo "\n"; ?>