You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Moodle自定义插件无法获取数据库数据问题求助

Moodle插件数据库查询错误修正说明

你代码里存在4个直接导致无法获取数据的问题:

  • 硬编码表前缀错误:Moodle支持自定义数据库表前缀,你直接写死mdl_bigbluebuttonbn会导致站点前缀不是mdl时完全查不到数据,正确写法是用大括号包裹不带前缀的表名:{bigbluebuttonbn},$DB对象会自动替换为当前站点配置的正确前缀。
  • 查询代码被注释:你核心的数据库查询代码行被注释掉了,当前代码仅会打印SQL语句,不会执行任何数据库查询操作,自然拿不到返回数据。
  • 查询方法选择错误:get_record_sql()仅适用于查询返回单条结果的场景,如果你的SQL没有加LIMIT 1限制、表内数据超过1条时,调用该方法会抛出错误。如果需要获取多条数据,应该改用get_records_sql()方法。
  • 参数写法错误:你注释的查询行里array $params=null是函数定义时的写法,实际调用时不能带类型声明和默认值赋值,无查询参数时直接传空数组或者null即可。

修正后的可运行代码

function get_infos_from_db() {
    global $DB;
    $sql = "SELECT *
            FROM {bigbluebuttonbn}";
    // 执行查询获取所有记录
    $records = $DB->get_records_sql($sql);
    // 打印查询结果验证
    var_dump($records);
    return $records;
}

如果只需要查询单条记录,可调整为以下写法:

// 示例:查询id为1的单条记录
function get_single_info_from_db($id) {
    global $DB;
    $sql = "SELECT * FROM {bigbluebuttonbn} WHERE id = ?";
    $record = $DB->get_record_sql($sql, [$id]);
    var_dump($record);
    return $record;
}

内容的提问来源于stack exchange,提问作者Marco Medic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:09:02