Перейти к контенту

Обращение к другой базе


Рекомендуемые сообщения

Есть следующий код, он обращается к текущей базе данных:

function _show_newimage()
{
 global $ibforums, $DB, $std, $print;
 $html  = "";

 // Randomness
 // In following queries CHANGE 4images table PREFIX if it doesn't match (Standard "4images_")!
$query = $DB->query("SELECT COUNT(*) as total_images
        FROM 4images_images a, 4images_categories b
        WHERE a.image_active=1
        AND a.cat_id = b.cat_id
        AND b.auth_viewcat=0
        AND b.auth_viewimage=0");
//if ( !($result = $DB->query($query)) )
//{
//return false;
//}
$row = $DB->fetch_row($query);
$total_images = $row['total_images'];

 mt_srand((double)microtime() * 1000000);
$rndnum = ($total_images > 1) ? mt_rand(0, $total_images - 1) : 0;

$query = $DB->query("SELECT a.image_id, a.cat_id, a.image_name, a.image_active, a.image_thumb_file
        FROM 4images_images a, 4images_categories b
        WHERE a.image_active=1
        AND a.cat_id = b.cat_id
        AND b.auth_viewcat=0
        AND b.auth_viewimage=0
        LIMIT $rndnum, 1");
//if ( !($result = $DB->query($query)) )
//{
//return false;
//}
$row = $DB->fetch_row($query);
$image_id = $row['image_id'];
$cat_id = $row['cat_id'];
$image_thumb_file = $row['image_thumb_file'];
$image_name = $row['image_name'];
return $this->html->tmpl_newimage($image_id, $cat_id, $image_thumb_file, $image_name);
}

Как сделать, чтобы функция обращалась к другой базе MySQL?

Ссылка на комментарий
Поделиться на других сайтах

Насколько мне известно, в переменной $DB хранятся название базы. Вот с ней то и надо что-то сделать
Ссылка на комментарий
Поделиться на других сайтах

Добавить в начало функции что-то вроде

$INFO['sql_driver'] = !$INFO['sql_driver'] ? 'mySQL' : $INFO['sql_driver'];

$to_require = $root_path."sources/Drivers/".$INFO['sql_driver'].".php";
require ($to_require);

$DB = new db_driver;

$DB->obj['sql_database']     = $INFO['sql_database'];
$DB->obj['sql_user']         = $INFO['sql_user'];
$DB->obj['sql_pass']         = $INFO['sql_pass'];
$DB->obj['sql_host']         = $INFO['sql_host'];
$DB->obj['sql_tbl_prefix']   = $INFO['sql_tbl_prefix'];

$DB->obj['debug']            = ($INFO['sql_debug'] == 1) ? $_GET['debug'] : 0;

// Get a DB connection

$DB->connect();

(выдрано из index.php), только вместо $INFO['sql_database'], $INFO['sql_user'] и т.д. указать данные для другой базы.

Ссылка на комментарий
Поделиться на других сайтах

Так не годится, т.к. идёт обращение к mySQL.php, а там:

    var $obj = array ( "sql_database"   => ""         ,
                      "sql_user"       => "root"     ,
                      "sql_pass"       => ""         ,
                      "sql_host"       => "localhost",
                      "sql_port"       => ""         ,
                      "persistent"     => "0"         ,
                      "sql_tbl_prefix"        => "ibf_"      ,

 

Надо как-то по другому...

Ссылка на комментарий
Поделиться на других сайтах

Des

Да ну, весь форум прекрасно работает через mySQL.php с заданными тобой при установке именем пользователя и паролем. Что конкретно тебе не нравится в этих строчках?

Ссылка на комментарий
Поделиться на других сайтах

Так база то другая! Значит sql_user, sql_pass, sql_tbl_prefix тоже другие! В той "другой" базе установлен не форум, а фотогаллерея 4images...
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.