Pagina 1 di 1

connettermi ad un ulteriore database

Inviato: 23/04/2010, 18:40
da wiko85
ciao a tutti, all'interno di una pagina web che richiama tutte le funzioni di osc, dovrei connettermi ad un ulteriore database ma mi genera un errore
è come se la connessione a questo database chiudesse quella al database del sito

qualcuno di voi ha idea di come connettersi ad un database senza alterare il funzionamento di oscommerce?

Re: connettermi ad un ulteriore database

Inviato: 23/04/2010, 21:10
da marcus
wiko85 ha scritto:ciao a tutti, all'interno di una pagina web che richiama tutte le funzioni di osc, dovrei connettermi ad un ulteriore database ma mi genera un errore
è come se la connessione a questo database chiudesse quella al database del sito

qualcuno di voi ha idea di come connettersi ad un database senza alterare il funzionamento di oscommerce?
E' piuttosto semplice.

1- Crea la nuova funzione tep_db_connect_mod e inseriscila nel file includes/functions/database

Codice: Seleziona tutto

function tep_db_connect_mod($server = DB_SERVER, $username = DB_SERVER_USERNAME, $password = DB_SERVER_PASSWORD, $database = DB_DATABASE, $link = 'db_link', $new_connection = false) {
    global $$link;

    if (USE_PCONNECT == 'true') {
        $$link = mysql_pconnect($server, $username, $password, $new_connection);
    } else {
        $$link = mysql_connect($server, $username, $password, $new_connection);
    }

    if ($$link) mysql_select_db($database);

    return $$link;
}
2- per effettuare la connessione al db esterno:

Codice: Seleziona tutto

$ext_server = 'localhost';
$ext_username = 'oscuser';
$ext_password = 'oscpass';
$ext_database = 'source';
$ext_link = 'ext_db_link';
$ext_table_prefix = '';

tep_db_connect_mod($ext_server, $ext_username, $ext_password, $ext_database, $ext_link, true) or die('Unable to connect to database server!');
3- per effettuare query sul db esterno specifica esplicitamente il riferimento $ext_link alla nuova connessione nella funzione tep_db_query.

Esempio.

Codice: Seleziona tutto

       $ext_customers_data_query = tep_db_query("select * from ext_table_customers where customers_id >= '" . (int)$customers_start_id . "'", $ext_link);
Buon lavoro
Marcus

Re: connettermi ad un ulteriore database

Inviato: 24/04/2010, 10:24
da wiko85
cosa sarebbe $ext_link?
grazie come sempre Marcus! :wink:

Re: connettermi ad un ulteriore database

Inviato: 24/04/2010, 12:47
da xnetus
Se vuoi collagarti direttamente dalla pagina:

Codice: Seleziona tutto


$server = 'server';
$username = 'username';
$password = 'password';
$database = 'database';

$connect=@mysql_connect($server,$username,$password) or http_headers('','Error,Database Connection');

@mysql_select_db($database,$connect) or http_headers('','Error,Database Connection');

$query="select * from NomeTabella";

$output=@mysql_query($query,$connect) or http_headers('','Error,Database Connection');

while ($row = @mysql_fetch_array($output)) {
	//FAI QUELLO CHE VUOI     ;)
}


@mysql_close($connect);

Re: connettermi ad un ulteriore database

Inviato: 24/04/2010, 21:01
da marcus
wiko85 ha scritto:cosa sarebbe $ext_link?
grazie come sempre Marcus! :wink:
E' il riferimento alla nuova connessione da usare nella funzione tep_db_query.

Saluti
Marcus

Re: connettermi ad un ulteriore database

Inviato: 27/04/2010, 12:16
da wiko85
marcus ha scritto:
wiko85 ha scritto:cosa sarebbe $ext_link?
grazie come sempre Marcus! :wink:
E' il riferimento alla nuova connessione da usare nella funzione tep_db_query.

Saluti
Marcus
ovvero? cioè cosa devo inserire in

Codice: Seleziona tutto

$ext_link = 'ext_db_link';

Re: connettermi ad un ulteriore database

Inviato: 27/04/2010, 12:17
da wiko85
xnetus ha scritto:Se vuoi collagarti direttamente dalla pagina:

Codice: Seleziona tutto


$server = 'server';
$username = 'username';
$password = 'password';
$database = 'database';

$connect=@mysql_connect($server,$username,$password) or http_headers('','Error,Database Connection');

@mysql_select_db($database,$connect) or http_headers('','Error,Database Connection');

$query="select * from NomeTabella";

$output=@mysql_query($query,$connect) or http_headers('','Error,Database Connection');

while ($row = @mysql_fetch_array($output)) {
	//FAI QUELLO CHE VUOI     ;)
}


@mysql_close($connect);
farla così la connessione è abbastanza sicuro?
eventualmente sarebbe più semplice e lo preferirei...

Re: connettermi ad un ulteriore database

Inviato: 27/04/2010, 12:33
da xnetus
Si, certo...

Re: connettermi ad un ulteriore database

Inviato: 27/04/2010, 22:21
da marcus
wiko85 ha scritto:
ovvero? cioè cosa devo inserire in

Codice: Seleziona tutto

$ext_link = 'ext_db_link';
Come ti ho scritto sopra è il nome della nuova connessione.

Il nome è arbitrario quindi puoi lasciare questa istruzione così come è.

Saluti
Marcus