📄 mysql.php
字号:
<?php // $Id: mysql.php,v 1.115.4.1 2007/11/02 16:20:25 tjhunt Exp $// THIS FILE IS DEPRECATED! PLEASE DO NOT MAKE CHANGES TO IT!//// IT IS USED ONLY FOR UPGRADES FROM BEFORE MOODLE 1.7, ALL // LATER CHANGES SHOULD USE upgrade.php IN THIS DIRECTORY.function quiz_upgrade($oldversion) {// This function does anything necessary to upgrade// older versions to match current functionality global $CFG, $QTYPES, $db; $success = true; require_once("$CFG->dirroot/mod/quiz/locallib.php"); if ($success && $oldversion < 2002101800) { $success = $success && execute_sql(" ALTER TABLE `quiz_attempts` ". " ADD `timestart` INT(10) UNSIGNED DEFAULT '0' NOT NULL AFTER `sumgrades` , ". " ADD `timefinish` INT(10) UNSIGNED DEFAULT '0' NOT NULL AFTER `timestart` "); $success = $success && execute_sql(" UPDATE `quiz_attempts` SET timestart = timemodified "); $success = $success && execute_sql(" UPDATE `quiz_attempts` SET timefinish = timemodified "); } if ($success && $oldversion < 2002102101) { $success = $success && execute_sql(" DELETE FROM log_display WHERE module = 'quiz' "); $success = $success && execute_sql(" INSERT INTO log_display (module, action, mtable, field) VALUES ('quiz', 'view', 'quiz', 'name') "); $success = $success && execute_sql(" INSERT INTO log_display (module, action, mtable, field) VALUES ('quiz', 'report', 'quiz', 'name') "); $success = $success && execute_sql(" INSERT INTO log_display (module, action, mtable, field) VALUES ('quiz', 'attempt', 'quiz', 'name') "); $success = $success && execute_sql(" INSERT INTO log_display (module, action, mtable, field) VALUES ('quiz', 'submit', 'quiz', 'name') "); } if ($success && $oldversion < 2002102600) { $success = $success && execute_sql(" ALTER TABLE `quiz_answers` CHANGE `feedback` `feedback` TEXT NOT NULL "); } if ($success && $oldversion < 2002122300) { $success = $success && execute_sql("ALTER TABLE `quiz_grades` CHANGE `user` `userid` INT(10) UNSIGNED DEFAULT '0' NOT NULL "); $success = $success && execute_sql("ALTER TABLE `quiz_attempts` CHANGE `user` `userid` INT(10) UNSIGNED DEFAULT '0' NOT NULL "); } // prefixes required from here on, or use table_column() if ($success && $oldversion < 2003010100) { $success = $success && execute_sql(" ALTER TABLE {$CFG->prefix}quiz ADD review TINYINT(4) UNSIGNED DEFAULT '0' NOT NULL AFTER `grademethod` "); } if ($success && $oldversion < 2003010301) { $success = $success && table_column("quiz_truefalse", "true", "trueanswer", "INTEGER", "10", "UNSIGNED", "0", "NOT NULL", ""); $success = $success && table_column("quiz_truefalse", "false", "falseanswer", "INTEGER", "10", "UNSIGNED", "0", "NOT NULL", ""); $success = $success && table_column("quiz_questions", "type", "qtype", "INTEGER", "10", "UNSIGNED", "0", "NOT NULL", ""); } if ($success && $oldversion < 2003022303) { $success = $success && modify_database ("", "CREATE TABLE `prefix_quiz_randommatch` ( `id` int(10) unsigned NOT NULL auto_increment, `question` int(10) unsigned NOT NULL default '0', `choose` INT UNSIGNED DEFAULT '4' NOT NULL, PRIMARY KEY ( `id` ) );"); } if ($success && $oldversion < 2003030303) { $success = $success && table_column("quiz_questions", "", "defaultgrade", "INTEGER", "6", "UNSIGNED", "1", "NOT NULL", "image"); } if ($success && $oldversion < 2003032601) { $success = $success && execute_sql(" ALTER TABLE `{$CFG->prefix}quiz_answers` ADD INDEX(question) "); $success = $success && execute_sql(" ALTER TABLE `{$CFG->prefix}quiz_attempts` ADD INDEX(quiz) "); $success = $success && execute_sql(" ALTER TABLE `{$CFG->prefix}quiz_attempts` ADD INDEX(userid) "); $success = $success && execute_sql(" ALTER TABLE `{$CFG->prefix}quiz_grades` ADD INDEX(quiz) "); $success = $success && execute_sql(" ALTER TABLE `{$CFG->prefix}quiz_grades` ADD INDEX(userid) "); $success = $success && execute_sql(" ALTER TABLE `{$CFG->prefix}quiz_question_grades` ADD INDEX(quiz) "); $success = $success && execute_sql(" ALTER TABLE `{$CFG->prefix}quiz_question_grades` ADD INDEX(question) "); $success = $success && execute_sql(" ALTER TABLE `{$CFG->prefix}quiz_randommatch` ADD INDEX(question) "); $success = $success && execute_sql(" ALTER TABLE `{$CFG->prefix}quiz_responses` ADD INDEX(attempt) "); $success = $success && execute_sql(" ALTER TABLE `{$CFG->prefix}quiz_responses` ADD INDEX(question) "); } if ($success && $oldversion < 2003033100) { $success = $success && modify_database ("", "ALTER TABLE prefix_quiz_randommatch RENAME prefix_quiz_randomsamatch "); $success = $success && modify_database ("", "CREATE TABLE `prefix_quiz_match` ( `id` int(10) unsigned NOT NULL auto_increment, `question` int(10) unsigned NOT NULL default '0', `subquestions` varchar(255) NOT NULL default '', PRIMARY KEY (`id`), KEY `question` (`question`) );"); $success = $success && modify_database ("", "CREATE TABLE `prefix_quiz_match_sub` ( `id` int(10) unsigned NOT NULL auto_increment, `question` int(10) unsigned NOT NULL default '0', `questiontext` text NOT NULL, `answertext` varchar(255) NOT NULL default '', PRIMARY KEY (`id`), KEY `question` (`question`) );"); } if ($success && $oldversion < 2003040901) { $success = $success && table_column("quiz", "", "shufflequestions", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "review"); $success = $success && table_column("quiz", "", "shuffleanswers", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "shufflequestions"); } if ($success && $oldversion < 2003071001) { $success = $success && modify_database ("", " CREATE TABLE `prefix_quiz_numerical` ( `id` int(10) unsigned NOT NULL auto_increment, `question` int(10) unsigned NOT NULL default '0', `answer` int(10) unsigned NOT NULL default '0', `min` varchar(255) NOT NULL default '', `max` varchar(255) NOT NULL default '', PRIMARY KEY (`id`), KEY `answer` (`answer`) ) TYPE=MyISAM COMMENT='Options for numerical questions'; "); } if ($success && $oldversion < 2003072400) { $success = $success && execute_sql(" INSERT INTO {$CFG->prefix}log_display (module, action, mtable, field) VALUES ('quiz', 'review', 'quiz', 'name') "); } if ($success && $oldversion < 2003072901) { $success = $success && modify_database ("", " CREATE TABLE `prefix_quiz_multianswers` ( `id` int(10) unsigned NOT NULL auto_increment, `question` int(10) unsigned NOT NULL default '0', `answers` varchar(255) NOT NULL default '', `positionkey` varchar(255) NOT NULL default '', `answertype` smallint(6) NOT NULL default '0', `norm` int(10) unsigned NOT NULL default '1', PRIMARY KEY (`id`), KEY `question` (`question`) ) TYPE=MyISAM COMMENT='Options for multianswer questions'; "); } if ($success && $oldversion < 2003080301) { $success = $success && execute_sql(" ALTER TABLE {$CFG->prefix}quiz ADD eachattemptbuildsonthelast TINYINT(4) DEFAULT '0' NOT NULL AFTER `attempts` "); } if ($success && $oldversion < 2003080400) { $success = $success && table_column("quiz", "eachattemptbuildsonthelast", "attemptonlast", "TINYINT", "4", "UNSIGNED", "0", "NOT NULL", ""); } if ($success && $oldversion < 2003082300) { $success = $success && table_column("quiz_questions", "", "stamp", "varchar", "255", "", "", "not null", "qtype"); } if ($success && $oldversion < 2003082301) { $success = $success && table_column("quiz_questions", "stamp", "stamp", "varchar", "255", "", "", "not null"); $success = $success && table_column("quiz_questions", "", "version", "integer", "10", "", "1", "not null", "stamp"); if ($questions = get_records("quiz_questions")) { foreach ($questions as $question) { $stamp = make_unique_id_code(); if (!($success = $success && set_field("quiz_questions", "stamp", $stamp, "id", $question->id))) { notify("Error while adding stamp to question id = $question->id"); break; } } } } if ($success && $oldversion < 2003082700) { $success = $success && table_column("quiz_categories", "", "stamp", "varchar", "255", "", "", "not null"); if ($categories = get_records("quiz_categories")) { foreach ($categories as $category) { $stamp = make_unique_id_code(); if (!($success = $success && set_field("quiz_categories", "stamp", $stamp, "id", $category->id))) { notify("Error while adding stamp to category id = $category->id"); break; } } } } if ($success && $oldversion < 2003111100) { $duplicates = get_records_sql("SELECT stamp as id,count(*) as cuenta FROM {$CFG->prefix}quiz_questions GROUP BY stamp HAVING count(*)>1"); if ($duplicates) { notify("You have some quiz questions with duplicate stamps IDs. Cleaning these up."); foreach ($duplicates as $duplicate) { $questions = get_records("quiz_questions","stamp",$duplicate->id); $add = 1; foreach ($questions as $question) { echo "Changing question id $question->id stamp to ".$duplicate->id.$add."<br />"; $success = $success && set_field("quiz_questions","stamp",$duplicate->id.$add,"id",$question->id); $add++; } } } else { notify("Checked your quiz questions for stamp duplication errors, but no problems were found.", "green"); } } if ($success && $oldversion < 2004021300) { $success = $success && table_column("quiz_questions", "", "questiontextformat", "integer", "2", "", "0", "not null", "questiontext"); } if ($success && $oldversion < 2004021900) { $success = $success && modify_database("","INSERT INTO prefix_log_display (module, action, mtable, field) VALUES ('quiz', 'add', 'quiz', 'name');"); $success = $success && modify_database("","INSERT INTO prefix_log_display (module, action, mtable, field) VALUES ('quiz', 'update', 'quiz', 'name');"); } if ($success && $oldversion < 2004051700) { include_once("$CFG->dirroot/mod/quiz/lib.php"); $success = $success && quiz_refresh_events(); } if ($success && $oldversion < 2004060200) { $success = $success && execute_sql(" ALTER TABLE {$CFG->prefix}quiz ADD timelimit INT(2) UNSIGNED DEFAULT '0' NOT NULL "); } if ($success && $oldversion < 2004070700) { $success = $success && table_column("quiz", "", "password", "varchar", "255", "", "", "not null", ""); $success = $success && table_column("quiz", "", "subnet", "varchar", "255", "", "", "not null", ""); } if ($success && $oldversion < 2004073001) { // Six new tables:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -