查询moodle中的moodle数据库

时间:2013-06-19 08:31:37

标签: php moodle

我是moodle的新手。我正在尝试使用自己的PHP脚本查询moodle数据库。我正在使用数据操作API,但我似乎无法获取任何东西。我应该采取什么步骤来实现这一目标。我在这里和那里看到了许多指南,我应该在moodle中包含config.php文件,以便访问$ DB全局变量,从而访问DML API的功能。以下是我的代码:

<?php
require '../config.php';
global $DB;
$user= $DB->get_record_sql('SELECT * FROM {mdl_user} WHERE id=?', array(4));
echo mysql_num_rows($user);

?>

当我尝试在TextMate编辑器上运行它时出现以下错误:

PHP Warning:  require(../config.php): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/moodle24/sbs_android_app/database_manipulation.php on line 2
PHP Fatal error:  require(): Failed opening required '../config.php' (include_path='.:') in  /Applications/MAMP/htdocs/moodle24/sbs_android_app/database_manipulation.php on line 2

我将非常感谢帮助......谢谢。

3 个答案:

答案 0 :(得分:5)

此错误:

PHP Warning:  require(../config.php): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/moodle24/sbs_android_app/database_manipulation.php on line 2

表示脚本找不到名为config.php的文件。 ../config.php表示脚本将尝试在脚本的父目录中打开一个名为config.php的文件。确保您的脚本实际位于该位置。如果不是,我建议将../config.php更改为./config.php并将脚本移动到与config.php相同的目录中。

因为你的脚本找不到config.php,所以它无法连接到数据库(config.php应该存储凭据,URL等)。

答案 1 :(得分:0)

我认为你是错误的道路。请确保您提供的路径正确无误

require_once('path_from_rootdir to config.php');

注意:path_from_rootdir到config.php是config.php的路径,路径之间的每个目录用'/'隔开。

答案 2 :(得分:0)

这有两个问题(如问题中的wriiten)Moodle的四行代码 -

require '../config.php';

此处代码收到错误 - “PHP警告:要求(../ config.php):无法打开流”因为正在查看父目录&amp;的config.php文件不存在。请检查路径&amp;把config.php的正确路径。

$user= $DB->get_record_sql('SELECT * FROM {mdl_user} WHERE id=?', array(4));

使用Moodle DML API时,不能在{}中的表名之前添加表前缀(默认情况下为mdl_)。因此,必须只有{user}代替{mdl_user}。