【问题标题】:MySQL error I can't understand, grademax error [duplicate]MySQL错误我无法理解,grademax错误[重复]
【发布时间】:2019-10-30 20:47:52
【问题描述】:

最近我的moodle发生了我无法解决的错误,我不知道该怎么办。我知道我需要从我的 MySQL 中改变一些东西,但我不知道是什么。该错误仅影响一门 Moodle 课程,导致学生既没有看到问题也没有解决问题。问题是 VPL。

Debug info: Out of range value for column 'grademax' at row 1
UPDATE mdl_grade_items SET courseid = ?,categoryid = ?,itemname = ?,itemtype = ?,itemmodule = ?,iteminstance = ?,itemnumber = ?,iteminfo = ?,idnumber = ?,calculation = ?,gradetype = ?,grademax = ?,grademin = ?,scaleid = ?,outcomeid = ?,gradepass = ?,multfactor = ?,plusfactor = ?,aggregationcoef = ?,aggregationcoef2 = ?,sortorder = ?,display = ?,decimals = ?,locked = ?,locktime = ?,needsupdate = ?,weightoverride = ?,timecreated = ?,timemodified = ?,hidden = ? WHERE id=?
[array (
0 => '6',
1 => NULL,
2 => NULL,
3 => 'course',
4 => NULL,
5 => '6',
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => 1,
11 => 100103.0,
12 => 0.0,
13 => NULL,
14 => NULL,
15 => '0.00000',
16 => 1.0,
17 => 0.0,
18 => 0.0,
19 => 0.0,
20 => '1',
21 => '0',
22 => NULL,
23 => '0',
24 => '0',
25 => 1,
26 => '0',
27 => '1517923151',
28 => 1572436932,
29 => '0',
30 => '91',
)]
Error code: dmlwriteexception



Stack trace:
line 489 of /lib/dml/moodle_database.php: dml_write_exception thrown
line 1528 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
line 1560 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->update_record_raw()
line 254 of /lib/grade/grade_object.php: call to mysqli_native_moodle_database->update_record()
line 307 of /lib/grade/grade_item.php: call to grade_object->update()
line 1559 of /lib/grade/grade_category.php: call to grade_item->update()
line 448 of /lib/grade/grade_category.php: call to grade_category->auto_update_max()
line 1162 of /lib/gradelib.php: call to grade_category->pre_regrade_final_grades()
line 440 of /lib/gradelib.php: call to grade_regrade_final_grades()
line 1314 of /mod/vpl/vpl.class.php: call to grade_get_grades()
line 1807 of /mod/vpl/vpl.class.php: call to mod_vpl->get_grade_info()
line 80 of /mod/vpl/view.php: call to mod_vpl->print_submission_restriction()

【问题讨论】:

  • 你能告诉我表格的架构吗?
  • 100103.0 的值显然对于该列来说太大了。

标签: php mysql phpmyadmin moodle moodle-api


【解决方案1】:

尝试从你的价值观中删除点

UPDATE mdl_grade_items 
  SET courseid = ?
  ,categoryid = ?
  ,itemname = ?
  ,itemtype = ?
  ,itemmodule = ?
  ,iteminstance = ?
  ,itemnumber = ?
  ,iteminfo = ?
  ,idnumber = ?
  ,calculation = ?
  ,gradetype = ?
  ,grademax = ?
  ,grademin = ?
  ,scaleid = ?
  ,outcomeid = ?
  ,gradepass = ?
  ,multfactor = ?
  ,plusfactor = ?
  ,aggregationcoef = ?
  ,aggregationcoef2 = ?
  ,sortorder = ?
  ,display = ?
  ,decimals = ?
  ,locked = ?
  ,locktime = ?
  ,needsupdate = ?
  ,weightoverride = ?
  ,timecreated = ?
  ,timemodified = ?
  ,hidden = ? 
  WHERE id=?
    [array (
    0 => '6',
    1 => NULL,
    2 => NULL,
    3 => 'course',
    4 => NULL,
    5 => '6',
    6 => NULL,
    7 => NULL,
    8 => NULL,
    9 => NULL,
    10 => 1,
    11 => 100103,
    12 => 0.0,
    13 => NULL,
    14 => NULL,
    15 => '0',
    16 => 1.0,
    17 => 0.0,
    18 => 0.0,
    19 => 0.0,
    20 => '1',
    21 => '0',
    22 => NULL,
    23 => '0',
    24 => '0',
    25 => 1,
    26 => '0',
    27 => '1517923151',
    28 => 1572436932,
    29 => '0',
    30 => '91',
    )]

【讨论】:

  • 我们不知道他们的表架构。可以定义为DECIMAL(5,2)
  • @aynber 。小数不应该引起这个问题..但是一些整数.. ..
  • 如果最大值是999.99,并且他们传入100103.0,则可以
猜你喜欢
  • 2015-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-15
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多