我正在将Moodle 1.0模块移植到2.0版。在检查几个PHP文件中的错误时,我遇到了一条查询错误消息,但没有指示错误是什么。以下是查询:

global $DB; //required global variable

$vms = $DB->get_records_sql('SELECT DISTINCT vm.*, uva.assignment_id, gm.groupid,
                                    CASE WHEN gm.groupid IS NULL THEN uva.user_id ELSE NULL END user_id
                                    FROM {mdl_vMoodle_Virtual_Machine} vm
                                    INNER JOIN {mdl_vMoodle_UVA} uva ON vm.id = uva.vm_id
                                    LEFT JOIN {mdl_groups_members} gm ON gm.userid = uva.user_id
                                    WHERE uva.assignment_id = :assignmentid', array('assignmentid'=>$assignment_id));

有人能告诉我这个函数调用有什么不正确吗?
更新:删除DISTINCT使错误消失。Moodle 2.0几乎没有文档,所以我不确定它是否只是不接受distinct关键字。

最佳答案

不要添加表名前缀“mdl”,因为使用{}会自动添加。

关于php - SQL查询错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13898494/

10-09 13:02