4

我不熟悉用代码更新数据库的 Moodles 方法。

我有这样的声明:

$expiredCourseArchiveIntegritaxSql = "UPDATE mdl_course SET category = 29
                                         WHERE expireDate < '" . $date . "'
                                         AND category = 28";

$expiredCourseIntegritaxArchive = $DB->get_records_sql($expiredCourseArchiveIntegritaxSql);

这种格式在从数据库中获取记录但不更新时有效。我找不到如何使用 Moodles $DB 函数更新数据库的示例。

我认为问题是我正在使用:

$DB->get_records_sql($expiredCourseArchiveIntegritaxSql);

当语法应该更像是:

$DB->update_records_sql($expiredCourseArchiveIntegritaxSql);
4

1 回答 1

3

通常在更新记录时,您使用 update_records() 并发送表名以及键和值的对象。但既然想指定 WHERE 少,你就必须使用 execute_sql:

$DB->execute_sql("UPDATE {course} SET category = 29 WHERE expireDate < '{$date}' AND category = 28");
于 2013-04-22T10:08:37.300 回答