Добрый день.
Столкнулся с неожиданным поведением $DB->update_record.
Есть таблица в БД, в которую при наступлении события окончания теста нужно записать информацию. Часть информации в таблице уже есть под этим id, то есть нужно обновить имеющуюся запись.
Столкнулся с тем, что все значения, кроме одного, успешно записываются:
$res->id = $id;
$res->quiz_result = $quiz_result;
$res->quiz_date = time();
$res->timemodified = time();
$res->uid= "VJ654789";
$res->attempt_id = $attempt_id; <- вот это значение не записывается
$r = $DB->update_record($table, $res, $bulk=false);
В логах запросов к БД есть запись, в которой видно, что до SQL это значение даже не дошло. То есть в SQL-запрос попали все значения, кроме этого:
678 Query UPDATE mdl_user_additional SET user = '12538',quiz = '2604',quiz_type = '0',quiz_result = '0', uid= 'VJ654789', quiz_date = '1610293556',modifier_id = '12485',timecreated = '1610290071',timemodified = '1610293556' WHERE id='26'
PHP ошибок или предупреждений нет.
Пробовал изменять тип данных для этого значения в таблице, приведение типов в PHP, заново создавал таблицу, всячески изменял название (имя свойства) - ничего не помогает. Фактически, $attempt_id = целое число (около 203 879).
Сталкивался ли кто-нибудь с таким поведением $DB->update_record?