Технические вопросы

Подключение к БД в Moodle

 
Изображение пользователя Елена Березина
Подключение к БД в Moodle
 

Добрый день!

Не могу разобраться где в Moodle находится файл с подключением к БД.  В config.php указаны все данные правильно, в ответ на запрос к базе приходит "No database selected". Запрос корректный точно. Вроде файлы подключаю по образцу родных скриптов. Помогите, пожалуйста, может я что-то из виду упускаю?

Изображение пользователя Evgeniy Schuetz
Re: Подключение к БД в Moodle
 

файл config.php в голове мудлового сайта

Изображение пользователя Елена Березина
Re: Подключение к БД в Moodle
 
Спасибо. Значит, проблема в чем-то другом. Буду разбираться)
Изображение пользователя Евгений Мамаев
Re: Подключение к БД в Moodle
 

Покажите фрагмент своего кода

Изображение пользователя Елена Березина
Re: Подключение к БД в Moodle
 
require_once("../config.php");


if($corr_user == true){

$user_control_id = $_GET['id'];

mysql_query("SELECT `firstname`, `lastname` FROM mymoodlesite.mdl_user WHERE `id` = ".$user_control_id) or die(mysql_error());

}

В ответ на такой запрос выдает "SELECT command denied to user ''@'host' for table 'mdl_user'"

-----------------------------------------

А если я прописываю напрямую подключение к базе в скрипте, то все работает корректно.

$server = 'host';                     

$user = 'user';

$password = 'password';

$dbname = 'mymoodlesite';

$dblink = mysql_connect($server, $user, $password, $dbname);

И еще момент. Если при подключении указываю название БД, то в запросе все равно требует ее указать, иначе говорит что не выбрана БД (No database selected)

В чем проблема,  не пойму...в смятении улыбаюсь

Изображение пользователя Евгений Мамаев
Re: Подключение к БД в Moodle
 

Посмотрите, как в других файлах реализованы запросы к БД.

Например:

$users=$DB->get_records('user',array('id'=>$user_control_id));

foreach($users as $u)

{

      

}


Значения параметров лучше получать так:

$user_control_id=required_param('id',PARAM_INT);

Изображение пользователя Виталий Лавров
Re: Подключение к БД в Moodle
Эксперт по Moodle
$user_control_id = $_GET['id'];

Это называется "Добро пожаловать хакеры". За работу с _GET/_POST без фильтрации нужно устраивать публичную порку и увольнять.

Посмотрите как модули получают параметры через  required_param() или optional_param()

`require_once("../config.php");' и mysql_query() никак не связаны! Если используете `require_once("../config.php");' то используйте API moodle для доступа к базе!