MDL-83844 mod_scorm: avoid SQL reserved words retrieving SCO timing.

This commit is contained in:
Paul Holden 2024-12-02 10:41:16 +00:00
parent a798b1db39
commit e9210ec9fc
No known key found for this signature in database
GPG key ID: A81A96D6045F6164

View file

@ -704,7 +704,7 @@ function scorm_get_sco_runtime($scormid, $scoid, $userid, $attempt=1) {
global $DB;
$params = array('userid' => $userid, 'scormid' => $scormid, 'attempt' => $attempt);
$sql = "SELECT min(timemodified) as start, max(timemodified) as finish
$sql = "SELECT MIN(timemodified) AS timemin, MAX(timemodified) AS timemax
FROM {scorm_scoes_value} v
JOIN {scorm_attempt} a on a.id = v.attemptid
WHERE a.userid = :userid AND a.scormid = :scormid AND a.attempt = :attempt";
@ -712,9 +712,12 @@ function scorm_get_sco_runtime($scormid, $scoid, $userid, $attempt=1) {
$params['scoid'] = $scoid;
$sql .= " AND v.scoid = :scoid";
}
$timedata = $DB->get_record_sql($sql, $params);
if (!empty($timedata)) {
return $timedata;
if ($timedata = $DB->get_record_sql($sql, $params)) {
return (object) [
'start' => $timedata->timemin,
'finish' => $timedata->timemax,
];
} else {
$timedata = new stdClass();
$timedata->start = false;