diff --git a/include/dbstructure.php b/include/dbstructure.php index 373d6ddb00..aea0fdfeda 100644 --- a/include/dbstructure.php +++ b/include/dbstructure.php @@ -158,6 +158,13 @@ function print_structure($database) { } } +function print_update_error($db, $message) { + echo sprintf(t("\nError %d occured during database update:\n%s\n"), + $db->errorno, $db->error); + + return t('Errors encountered performing database changes: ').$message.EOL; +} + function update_structure($verbose, $action, $tables=null, $definition=null) { global $a, $db; @@ -207,7 +214,7 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { if (!isset($database[$name])) { $r = db_create_table($name, $structure["fields"], $verbose, $action, $structure['indexes']); if (!dbm::is_result($r)) { - $errors .= t('Errors encountered creating database tables.').$name.EOL; + $errors .= print_update_error($db, $name); } $is_new_table = True; } else { @@ -364,33 +371,33 @@ function update_structure($verbose, $action, $tables=null, $definition=null) { } else { $r = $db->q("CREATE TABLE `".$temp_name."` LIKE `".$name."`;"); if (!dbm::is_result($r)) { - $errors .= t('Errors encountered performing database changes.').$sql3.EOL; + $errors .= print_update_error($db, $sql3); return $errors; } } } $r = @$db->q($sql3); - if (!dbm::is_result($r)) - $errors .= t('Errors encountered performing database changes.').$sql3.EOL; - + if (!dbm::is_result($r)) { + $errors .= print_update_error($db, $sql3); + } if ($is_unique) { if ($ignore != "") { $db->q("SET session old_alter_table=0;"); } else { $r = $db->q("INSERT INTO `".$temp_name."` SELECT * FROM `".$name."`".$group_by.";"); if (!dbm::is_result($r)) { - $errors .= t('Errors encountered performing database changes.').$sql3.EOL; + $errors .= print_update_error($db, $sql3); return $errors; } $r = $db->q("DROP TABLE `".$name."`;"); if (!dbm::is_result($r)) { - $errors .= t('Errors encountered performing database changes.').$sql3.EOL; + $errors .= print_update_error($db, $sql3); return $errors; } $r = $db->q("RENAME TABLE `".$temp_name."` TO `".$name."`;"); if (!dbm::is_result($r)) { - $errors .= t('Errors encountered performing database changes.').$sql3.EOL; + $errors .= print_update_error($db, $sql3); return $errors; } }