我不熟悉moodle用代码更新数据库的方法。
我有这样的语句:
$expiredCourseArchiveIntegritaxSql = "UPDATE mdl_course SET category = 29
WHERE expireDate < '" . $date . "'
AND category = 28";
$expiredCourseIntegritaxArchive = $DB->get_records_sql($expiredCourseArchiveIntegritaxSql);
此格式适用于从DB获取记录但不更新的情况。我找不到一个如何使用moodle $ db函数更新数据库的例子。
我假设问题是我使用了:
$DB->get_records_sql($expiredCourseArchiveIntegritaxSql);
当语法应该更像:
$DB->update_records_sql($expiredCourseArchiveIntegritaxSql);
通常在更新记录时使用update_records()并发送表名和键值对象。但是由于想要指定WHERE少于then,您必须使用execute_sql:
$DB->execute_sql("UPDATE {course} SET category = 29 WHERE expireDate < '{$date}' AND category = 28");