Php 通过SQL重置Moodle课程

Php 通过SQL重置Moodle课程,php,mysql,sql,sql-server,moodle,Php,Mysql,Sql,Sql Server,Moodle,我帮助维护moodle环境(1.9.7版),每学期我们都需要对所有课程进行默认重置,但有近500门课程,每门课程都有一个论坛和两到四次测验,这样做非常繁琐,需要很长时间 我一直在到处寻找进行大规模/批量课程重置的方法,但到目前为止没有任何效果。例如: 好吧,我算了,不过要小心点。如果你不知道你在做什么 如果您不使用此代码,可能会对您的计算机造成很大的损坏 DB。这会将“默认”课程重置为中的所有课程ID 数组 有人知道在执行默认重置时使用了哪些SQL指令吗?非常感谢您的帮助。恐怕仅用SQL进行

我帮助维护moodle环境(1.9.7版),每学期我们都需要对所有课程进行默认重置,但有近500门课程,每门课程都有一个论坛和两到四次测验,这样做非常繁琐,需要很长时间

我一直在到处寻找进行大规模/批量课程重置的方法,但到目前为止没有任何效果。例如:

好吧,我算了,不过要小心点。如果你不知道你在做什么 如果您不使用此代码,可能会对您的计算机造成很大的损坏 DB。这会将“默认”课程重置为中的所有课程ID 数组



有人知道在执行默认重置时使用了哪些SQL指令吗?非常感谢您的帮助。

恐怕仅用SQL进行重置将非常困难。重置代码也会调用每个模块中的函数,因此它们可以做自己的事情

看起来你在正确的轨道上批量重置

不过我还是建议升级。Moodle 1.9.7现在非常古老,不受支持。升级路线为:

  • 升级至最新的1.9,即1.9.19+
  • 然后升级到2.2
  • 然后升级到2.9

显然,首先要在开发服务器上进行备份和测试。

我明白了。不幸的是,老板拒绝更新,声称数据库太大,无法进行备份。我试过那个代码,但没用。我不知道它会出什么问题。
<?php
require('../config.php');
require_once('reset_form.php');

$courseids = array(8,9,11);

foreach ($courseids as &$value) {


$data->MAX_FILE_SIZE = 8097152;
$data->reset_start_date = 1251781200;
$data->reset_events = 1;
$data->reset_logs = 1;
$data->reset_notes = 1;
$data->reset_roles = Array(5);
$data->mform_showadvanced_last = 0;
$data->reset_roles_local = 1;
$data->reset_gradebook_grades = 1;
$data->reset_assignment_submissions = 1;
$data->reset_forum_all = 1;
$data->id = $value;

$status = reset_course_userdata($data);
}
?>