2013-06-19 77 views
1

我是新来的moodle。我试图用我自己的PHP脚本查询moodle数据库。我正在使用数据操作API,但我似乎无法获取任何内容。我应该采取什么措施来实现这一点。我在这里和那里看到了很多指导原则,我应该在moodle中包含config.php文件,以便访问$ DB全局变量,从而访问DML API的功能。以下是我的代码:查询moodle中的moodle数据库

<?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 

我会欣赏的帮助...谢谢。

回答

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文件应保存凭证,网址等。)

+0

该文件实际上是在正确的地方。我不知道我做错了什么。这个config.php在我的文件夹之外 –

+0

嗯。尝试移动它并将路径更改为“./config.php”,看看是否有帮助 –

0

我想你给错误的道路。请确保你给的路径是正确的像

require_once('path_from_rootdir to config.php'); 

注:path_from_rootdir到config.php文件是通向config.php文件,并通过“/”分隔路径之间的每个目录。

0

有两个问题与此(如问题wriiten)Moodle-

require '../config.php'; 

下面的代码越来越无差错“PHP警告四行代码:要求(../ config.php文件):未能打开流“,因为config.php正在被查看到父目录&文件不存在。请检查路径&放置config.php的正确路径。

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

虽然在Moodle DML API,表前缀(默认mdl_)工作不得在{}中的表名前添加。因此,必须只有{用户}代替{mdl_user}。