Подключение к базе mysql на другом сервере из модуля joomla

Тема в разделе "Программирование", создана пользователем QuadGhoST, 06.10.2007.

  1. Offline

    QuadGhoST Недавно здесь

    Регистрация:
    27.08.2007
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    Собственно сабж как сделать...
    Пробовал просто:
    Код (CODE):
    1. $link = mysql_connect($host, $user, $password);
    2. mysql_select_db($dbase,$link);
    3. $res = mysql_query("SELECT count(*) FROM `list`", $link);
    4. echo mysql_result($res,0);
    5. mysql_close($link);

    Не получилось.
    Полистал API joomla нашёл конструктор класса database.
    Попробовал сделать так:
    Код (CODE):
    1. $db = new database( $host, $user, $password, $dbase );
    2. $db->setQuery("SELECT count(*) FROM `list`");
    3. $numpl = $db->loadResult();
    4. echo $numpl;

    Тоже не получилось.
    Причём никаких ошибок в самом модуле нет. Все переменные указаны верно.
    При включение этого модуля джумула тоже ни на что не жалуеться как и php.
    Удалённая база тоже доступна.
    Просто в этом блоке пустота и всё.
    Как правильно подключать в модуле другую базу и считывать из неё данные?
     
  2.  
  3. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 310
    Симпатии:
    375
    Пол:
    Мужской
    Ответ: Подключение к базе mysql на другом сервере из модуля joomla

    Ну попробуй вставить
    Код (PHP):
    1. if ($db->getErrorNum()) {
    2.   echo $db->getErrorMsg();
    3. }

    или

    Код (PHP):
    1. if (!$db->query()) {
    2.     echo $db->stderr();
    3.     return false;
    4.   }


    именно так и надо
     
  4. Offline

    QuadGhoST Недавно здесь

    Регистрация:
    27.08.2007
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    Ответ: Подключение к базе mysql на другом сервере из модуля joomla

    Ну что ж пробовал три варианта:
    Код (CODE):
    1. if (!$db->query()) {
    2.     echo $db->getErrorMsg();
    3.     exit();
    4.     }


    Код (CODE):
    1. if (!$db->query()) {
    2.     echo $db->stderr();
    3.     return false;
    4.     }


    Код (CODE):
    1. if ($db->getErrorNum()) {
    2. echo $db->getErrorMsg();
    3. }


    Эмоций ноль. Всё таки же белоснежный модуль. Может я не правильно создал новый объект database или джумула не даёт работать с базой с другого хоста не джумуловской. Хз вообщем не знаю куда даже рыть. Через модуль mod_php извращаться бред. Создать простой модуль, а в нём инклудить этот в котором будут не $db->setQuery, а просто mysql_query попахивает извращением, как и mod_php.

    sourpuss, может вспомнишь навскидку какой-нибудь рабочий модуль в котором было бы использовано то о чём я пишу? Глянул бы исходники :)
     
    Последнее редактирование: 06.10.2007
  5. Offline

    QuadGhoST Недавно здесь

    Регистрация:
    27.08.2007
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    Ответ: Подключение к базе mysql на другом сервере из модуля joomla

    Хм вообщем new database заработал.
    Проблема кака всегда оказалось в стороннем расширении.
     
  6. chilly_bang
    Offline

    chilly_bang Недавно здесь => Cпециалист <=

    Регистрация:
    30.04.2006
    Сообщения:
    1 541
    Симпатии:
    38
    Пол:
    Мужской
    Ответ: Подключение к базе mysql на другом сервере из модуля joomla

    опиши, что как, пошагово - как заработало?
     
  7. Offline

    QuadGhoST Недавно здесь

    Регистрация:
    27.08.2007
    Сообщения:
    10
    Симпатии:
    0
    Пол:
    Мужской
    Ответ: Подключение к базе mysql на другом сервере из модуля joomla

    Ну в общем создал новый объект:
    $db = new database( $host, $user, $password, $dbase );
    Дальше работой с другой базой средствами самой джумлы.
    В конце ещё убил объект $db:
    unset($db);
    Всё.
     
  8. Offline

    mister_pipin Недавно здесь

    Регистрация:
    29.09.2010
    Сообщения:
    7
    Симпатии:
    0
    Пол:
    Мужской
    Всем доброй ночи!), нуждаюсь в ваших советах. джомлой пользуюсь не так давно,хочу создать отдельную базу и подключить к ней несколько сайтов,ничего не получается. решил в базе данных сайта создать таблицу,вобщем с этим сайтом получилось вытянуть инфу, пробовал с другого сайта подключиться(который лежит на другом сервере) но так и не вышло получилось, у кого какие мысли? кто знает? подскажите...
    p.s. а какое стороннее решение вызвало проблему?
     
    Последнее редактирование: 29.09.2010
  9. omfgpanda
    Offline

    omfgpanda Недавно здесь => Cпециалист <=

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    Сторонние решения не всегда могут прийти на помощь. Большинство хостеров запрещают удаленное подключение к БД в целях безапастности.
     
  10. Offline

    cpentyc Недавно здесь

    Регистрация:
    08.08.2011
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    А что должна содержать переменная хост? не отвечайте хост напишите пример
     
  11. toorr2p
    Offline

    toorr2p Недавно здесь

    Регистрация:
    04.09.2009
    Сообщения:
    37
    Симпатии:
    2
    Пол:
    Мужской
    Здравствуйте! тоже потребовалось соединится в модуле с другой базой (обе базы на оном хосте, т.е localhost), пишу вот так:

    Код (PHP):
    1. $host = 'localhost';
    2.     $user = 'xxx';
    3.     $password = 'xxx';
    4.     $dbase = 'xxx';
    5.    
    6.     $db = new database($host, $user, $password, $dbase);
    7.     $query = 'SELECT postid, threadid, username, title, dateline FROM post WHERE visible = 1 ORDER BY postid DESC';
    8.     $db->setQuery($query, 0, 5);
    9.    
    10.     if (!$db->query()) {
    11.         echo $db->stderr();
    12.         return false;
    13.     }
    14.    
    15.     $rows = $db->loadObjectList();
    16.    
    17.     print_r($rows);


    Выводится ошибка : "DB function failed with error number 1146".
    Помогите разобраться плз, я так подозреваю, что в коде не хватает чего то вроде SELECT DATABASE NAME ?
    Спасибо!
     
    Последнее редактирование: 09.11.2011
  12. toorr2p
    Offline

    toorr2p Недавно здесь

    Регистрация:
    04.09.2009
    Сообщения:
    37
    Симпатии:
    2
    Пол:
    Мужской

Поделиться этой страницей

Загрузка...