2013-06-19 4 views
1

Je suis nouveau à moodle. J'essaie d'interroger la base de données moodle en utilisant mes propres scripts PHP. J'utilise l'API de manipulation de données mais je n'arrive pas à chercher quoi que ce soit. Quelles sont les mesures que je devrais prendre pour accomplir ceci. J'ai vu un certain nombre de lignes directrices ici et là que je devrais inclure le fichier config.php dans moodle afin d'accéder à la variable globale $ DB et donc accéder aux fonctions de l'API DML. Voici mon code:Interroger la base de données moodle au sein de 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); 

?> 

Je reçois l'erreur suivante lorsque je tente de l'exécuter sur l'éditeur 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 

J'apprécieront l'aide ... Merci.

Répondre

5

Cette erreur:

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 

signifie que le script ne peut pas trouver un fichier appelé config.php. ../config.php signifie que le script va essayer d'ouvrir un fichier dans le répertoire parent du script appelé config.php. Assurez-vous que votre script est réellement à cet endroit. Si ce n'est pas le cas, je recommande de remplacer ../config.php par ./config.php et de déplacer votre script dans le même répertoire que config.php.

Parce que votre script ne peut pas trouver config.php, il ne peut pas se connecter à la base de données (config.php doit stocker les informations d'identification, URL, ect.)

+0

Le fichier est réellement au bon endroit. Je ne suis pas sûr de ce que je fais mal. cette config.php est en dehors de mon dossier –

+0

Hmm. Essayez de le déplacer et changer le chemin d'accès à "./config.php" et voir si cela aide –

0

Je pense que vous donnez un mauvais chemin. s'il vous plaît assurez-vous que le chemin que vous donnez est correct comme

require_once('path_from_rootdir to config.php'); 

Note: path_from_rootdir à config.php est le chemin vers config.php et chaque répertoire entre le chemin séparé par «/».

0

Il y a deux problèmes avec cette (comme wriiten dans la question) quatre lignes de code de Moodle-

require '../config.php'; 

Voici le code devient ERROR- « Attention PHP: require (../ config.php): a échoué à ouvrir le flux "parce que config.php est examiné dans le répertoire parent & fichier n'est pas là. S'il vous plaît vérifier le chemin & mettre le bon chemin de config.php.

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

Tout en travaillant avec l'API Moodle DML, préfixe de table (par mdl_ par défaut) ne doit pas être ajouté avant le nom de la table dans les {}. Ainsi, il ne doit y avoir que {user} à la place de {mdl_user}.