Des Опубликовано 29 Октября 2003 Жалоба Поделиться Опубликовано 29 Октября 2003 Есть следующий код, он обращается к текущей базе данных: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? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Borland_delphi_6 Опубликовано 29 Октября 2003 Жалоба Поделиться Опубликовано 29 Октября 2003 Насколько мне известно, в переменной $DB хранятся название базы. Вот с ней то и надо что-то сделать Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 30 Октября 2003 Жалоба Поделиться Опубликовано 30 Октября 2003 Добавить в начало функции что-то вроде$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'] и т.д. указать данные для другой базы. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Des Опубликовано 30 Октября 2003 Автор Жалоба Поделиться Опубликовано 30 Октября 2003 Так не годится, т.к. идёт обращение к mySQL.php, а там: var $obj = array ( "sql_database" => "" , "sql_user" => "root" , "sql_pass" => "" , "sql_host" => "localhost", "sql_port" => "" , "persistent" => "0" , "sql_tbl_prefix" => "ibf_" , Надо как-то по другому... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 30 Октября 2003 Жалоба Поделиться Опубликовано 30 Октября 2003 Des Да ну, весь форум прекрасно работает через mySQL.php с заданными тобой при установке именем пользователя и паролем. Что конкретно тебе не нравится в этих строчках? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Des Опубликовано 30 Октября 2003 Автор Жалоба Поделиться Опубликовано 30 Октября 2003 Так база то другая! Значит sql_user, sql_pass, sql_tbl_prefix тоже другие! В той "другой" базе установлен не форум, а фотогаллерея 4images... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 30 Октября 2003 Жалоба Поделиться Опубликовано 30 Октября 2003 Des, правильно, вот я и говорю: только вместо $INFO['sql_database'], $INFO['sql_user'] и т.д. указать данные для другой базы. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.