.
*/
error_reporting(E_ALL);
ini_set('display_errors', 1);
require('../conf.php');
function lower_version($that, $new) {
$that = explode('.', $that);
$new = explode('.', $new);
while (count($that) < count($new)) $that[] = 0;
while (count($new) < count($that)) $new[] = 0;
for ($i = 0; $i < count($new); $i++) {
if ($new[$i] > $that[$i]) {
return true;
}
}
return false;
}
if (isset($_GET['upgrade'])) {
if (lower_version($_GET['upgrade'], '0.1')) {
try {
$_pdo->query("ALTER TABLE `".Constants::db_prefix."assignment` CHANGE `hours` `hours` FLOAT UNSIGNED NOT NULL");
} catch (PDOException $e) {
echo "Altering the database structure failed with a PDOException ({$e->getCode()}): {$e->getMessage()}
" . $e->getTraceAsString();
}
}
if (lower_version($_GET['upgrade'], '0.2.2')) {
try {
$_pdo->query("ALTER TABLE `".Constants::db_prefix."assignment` DROP FOREIGN KEY `assignment_ibfk_1`");
$_pdo->query("ALTER TABLE `".Constants::db_prefix."assignment` ADD CONSTRAINT `assignment_ibfk_1` FOREIGN KEY (`offerId`) REFERENCES `".Constants::db_prefix."offer` (`id`) ON DELETE CASCADE ON UPDATE CASCADE");
} catch (PDOException $e) {
echo "Altering the database structure failed with a PDOException ({$e->getCode()}): {$e->getMessage()}
" . $e->getTraceAsString();
}
}
if (lower_version($_GET['upgrade'], '0.3')) {
try {
$_pdo->query("CREATE TABLE IF NOT EXISTS `".Constants::db_prefix."discount` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`offerId` smallint(5) unsigned NOT NULL,
`title` tinytext NOT NULL,
`description` text NOT NULL,
`value` float unsigned NOT NULL,
`VAT_percentage` float NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;");
$_pdo->query("ALTER TABLE `".Constants::db_prefix."discount`
ADD CONSTRAINT `discount_ibfk_1` FOREIGN KEY (`offerId`) REFERENCES `".Constants::db_prefix."offer` (`id`);");
} catch (PDOException $e) {
echo "Altering the database structure failed with a PDOException ({$e->getCode()}): {$e->getMessage()}
" . $e->getTraceAsString();
}
}
if (lower_version($_GET['upgrade'], '0.4')) {
try {
$_pdo->query("CREATE TABLE IF NOT EXISTS `".Constants::db_prefix."user` (
`id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(24) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;");
} catch (PDOException $e) {
echo "Altering the database structure failed with a PDOException ({$e->getCode()}): {$e->getMessage()}
" . $e->getTraceAsString();
}
}
if (lower_version($_GET['upgrade'], '0.4.2')) {
try {
$_pdo->query("CREATE TABLE IF NOT EXISTS `".Constants::db_prefix."payment` (
`id` smallint(5) unsigned NOT NULL,
`offerId` smallint(5) unsigned NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;");
$offers = $_pdo->query("SELECT `id`,`payment_received` FROM `".Constants::db_prefix."offer` WHERE `payment_received` IS NOT NULL");
$offers = $offers->fetchAll(PDO::FETCH_ASSOC);
foreach ($offers as $offer) {
$received = $offer['payment_received'];
$offer = new Offer($_pdo, $offer['id']);
$offer->createPayment($received);
}
$_pdo->query("ALTER TABLE `".Constants::db_prefix."offer` DROP `payment_received`;");
} catch (PDOException $e) {
echo "Altering the database structure failed with a PDOException ({$e->getCode()}): {$e->getMessage()}
" . $e->getTraceAsString();
}
}
echo "
All done.";
}
?>
You're going to upgrade to version =Constants::version?>. What was your old version number?