Ошибка записи в базу данных в Moodle

Я пытаюсь создать кастом plugin задать вопрос студенту в Мудл. Для этого у меня есть две таблицы. mdl_qadt and mdl_qads. Я сделал часть учителя, то есть учитель может добавить вопрос. Это сохраняется в таблицу mdl_qadt, Теперь ученик логин и выберите это упражнение отобразить форму. Здесь студенты могут опубликовать свой ответ. При публикации ответа, который выдает ошибку:

Ошибка записи в базу данных.

Но ответ и соответствующие данные вставляются в таблицу mdl_qads, Тогда почему ошибка показывает ??

Изображение страницы с ошибкой

введите описание изображения здесь

Изображение формы для студента

введите описание изображения здесь

view.php

echo $OUTPUT->heading($qadt->name);

if ($qadt->intro) { // Conditions to show the intro can change to look for own settings or whatever
echo $OUTPUT->box(format_module_intro('qadt', $qadt, $cm->id), 'generalbox mod_introbox', 'qadtintro');
}
echo "<b>". $qadt->question ."</b>";

require_once(dirname(__FILE__).'/stud_form.php');

$stud_form = new student_form("stud_action.php?id={$cm->id}&ref={$qadt->id}");

$stud_form->display();

echo $OUTPUT->footer();

stud_form.php

require_once($CFG->dirroot.'/lib/formslib.php');

class student_form extends moodleform {

function definition () {
$mform =& $this->_form;
//$mform->addElement('header', 'general', 'general');
$mform->addElement('text', 'answer', 'Your answer');
$mform->setType('answer', PARAM_TEXT);
$mform->addRule('answer', null, 'required', null, 'client');
$this->add_action_buttons(false, 'submit');
}

}

stud_action.php

require_once(dirname(dirname(dirname(__FILE__))).'/config.php');
require_once(dirname(__FILE__).'/lib.php');
require_once($CFG->dirroot.'/lib/formslib.php');

$answer = $_REQUEST['answer'];  //answer given by student or user
if(isset($_GET['ref']))
{
$refid = $_GET['ref'];  // refid
}
if(isset($_GET['id']))
{
$modid = $_GET['id'];  // module id
}
$currentTime = date('Y-m-d H:i:s');
$record = new stdClass();
$record->sid     = $USER->id;   // logged in user's id
$record->refid   = $refid;
$record->answer  = $answer;
$record->modified_date  = $currentTime;

$table = "qads";
$data = studResponse($record, $table);
function studResponse($record, $table)
{
global $DB;
$lastinsertid = $DB->insert_record($table, $record);
return $lastinsertid;
}
if($data)
{
header("location:view.php?id=$modid");
}

Почему я получаю ошибку, даже если данные вставлены в таблицу. Как я могу это исправить.? Любая помощь заметна.

РЕДАКТИРОВАТЬ

Я получил следующую ошибку

Debug info: unknown error fetching inserted id

[NULL]
Error code: dmlwriteexception

Stack trace: •line 1101 of \lib\dml\mysqli_native_moodle_database.php: dml_write_exception thrown
•line 1144 of \lib\dml\mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw()
•line 52 of \mod\qadt\locallib.php: call to mysqli_native_moodle_database->insert_record()
•line 18 of \mod\qadt\stud_action.php: call to students_response()

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]