我是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
我将非常感谢帮助......谢谢。
答案 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}。