Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 02-01-2005, 07:46 AM
miz miz is offline
 
Join Date: Mar 2003
Posts: 416
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default working with 2 database help please

ok i have 2 dbs on same host
1 is vbulletin and the 2nd is just some info
i need about things

now mysql user have axx to both databases

so i thought ok vbulletin will use $DB_site and for the other info ill user
$predb

so when im doing $Db_site->query($query)
its will run on vbulletin db
and when im doing $predb->query($query) its will run on the other database

sounds simple right ?

so i edited config.php and added $predbname = '';
so i can use it for $predb

also i open init.php to add new db_class
and added this code :

PHP Code:
 $predb = new DB_Sql_vb;
    
$predb->appname 'Pre';
    
$predb->appshortname 'pre (' VB_AREA ')';
    
$predb->database $predbname;

    
$predb->connect($servername$dbusername$dbpassword$usepconnect); 
now my problem is like that
every time server tries to connect to host he connect to db in $predb
so he wont find vbulletin info

now my qustion is if there any way that i can use this method
with out doing mysql_select_db every time i want to use $predb instead of $DB_site ???

help appricated. thanx
MiZ
Reply With Quote
  #2  
Old 02-01-2005, 02:23 PM
Dean C's Avatar
Dean C Dean C is offline
 
Join Date: Jan 2002
Location: England
Posts: 9,071
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

To work with a seperate DB all you need to do is prefix the tablename in your queries with the database name.

e.g.

[sql]
SELECT field
FROM dbname." . TABLE_PREFIX . "table as table
[/sql]
Reply With Quote
  #3  
Old 02-01-2005, 10:22 PM
miz miz is offline
 
Join Date: Mar 2003
Posts: 416
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

nahh i sloved it with better idea

PHP Code:
define('VBDB''vbulletindb');
define('PREDB''myotherdb');

function 
switchdb()
{
    global 
$DB_site;
    
        
    switch (
$DB_site->database)
    {
    case 
PREDB:    
    
$DB_site->database VBDB;
    
$DB_site->select_db(VBDB);
    
    break;
    case 
VBDB:
    
$DB_site->database PREDB;
    
$DB_site->select_db(PREDB);
    
    break;

        
        
    }
    

then if i make a function
all i do is
switchdb();
on start and end of function...

Quote:
Originally Posted by Dean C
To work with a seperate DB all you need to do is prefix the tablename in your queries with the database name.

e.g.

[sql]
SELECT field
FROM dbname." . TABLE_PREFIX . "table as table
[/sql]
but you gave me an idea

i can add new define
like
PHP Code:
define(MiZDB,$dbname); 
and just to do


[sql]
SELECT field
FROM " . MIZDB. "table as table
[/sql]

as my other table dosent user prefix

btw is my first way takes more qureys ?
Reply With Quote
  #4  
Old 02-01-2005, 11:28 PM
Dean C's Avatar
Dean C Dean C is offline
 
Join Date: Jan 2002
Location: England
Posts: 9,071
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Why make a function when you can just put $DB_site->select_db('dbname'); in your code before you run the query, and then switch it back afterwards, seems kinda redundant
Reply With Quote
  #5  
Old 02-01-2005, 11:33 PM
miz miz is offline
 
Join Date: Mar 2003
Posts: 416
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Dean C
Why make a function when you can just put$DB_site->select_db('dbname'); in your code before you run thequery, and then switch it back afterwards, seems kinda redundant
cuse ill need to to do a lot of switch db
but i made it on the easyest way that can be
in init.php i added :
PHP Code:
define('PREDB','mydb.mytable');
// i need only 1 table form this db 
// so why not make life eayer ? 
after
PHP Code:
    define('TABLE_PREFIX'$tableprefix); 
and on my script its looks like that :

PHP Code:

$DB_site
->query("SELECT * FROM "PREDB ." ORDER BY id DESC LIMIT 5 "); 
simeple as that.
so when i want to use my other db i use PRED in query
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:53 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04628 seconds
  • Memory Usage 2,217KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (6)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete