Connessione a due database differenti

di il
8 risposte

Connessione a due database differenti

Salve a tutti, sto lavorando ad un progettino in cui ho la necessita di connettermi a due database diversi. Con la vecchia sintassi "mysql_query" non avevo nessun problema (so farlo). Ora però volevo aggiornarlo (mysql_query è deprecato), il problema viene qui, in quanto dovrei come dicevo effettuare una doppia connessione a due database differenti e sinceramente non mi è molto chiaro come fare. Vi riporto un esempio del codice (in modo molto semplificato) per farvi come intendevo farlo:
$mysqli_conn1=new mysqli("localhost", "nome", "pass", "DB1");
$mysqli_conn2=new mysqli("localhost", "nome2", "pass2", "DB2");

$query1=$mysql_conn1->query(SELECT nome FROM pincopallinoDB1);
$query2=$mysql_conn->query(SELECT nome FROM pincopallinoDB2);
Sapreste dirmi se è corretta una sintassi del genere?

Grazie a tutti!

8 Risposte

  • Re: Connessione a due database differenti

    Ciao diciamo si è no sintatticamente è corretto ma non puoi collegarti in contemporanea, sarebbe più opportuno chiudere la connessione al db primo poi eseguire il resto
  • Re: Connessione a due database differenti

    Perche' no?
    Perche' uno non si deve poter collegare a N database distinti contemporaneamente?
    Pensa alla banale situazione di dover copiare il contenuto di una tabella da un database A ad un'altro database B.
    Il problema, al limite, e' che non potrebbe fare query cross database.
    Ho scritto specificatamente non potrebbe perche' in realta' si puo' fare anche questo con MySQL. Ma qui si entra nel mondo dei database federati, argomento decisamente sofisticato.
  • Re: Connessione a due database differenti

    Si si certo non ho detto che non si puó ma semplicemente meglio non farlo, penso per questioni di sicurezza in gente non è meglio collegarsi al primo prelevare e scollegarsi e poi fare la chiamata ad altri db?
  • Re: Connessione a due database differenti

    Connettersi a database diversi è un'operazione tra le più comuni, e le più convenienti (in certi casi sono vitali!) tant'é che persino in Access è permesso interrogare tabelle di più database, purché siano entrambi dello stesso tipo.

    Non c'è alcun valido motivo per dire che: è meglio non farlo.

    In SQL Server, invece, è tranquillamente possibile creare anche dei LINKED server per connettersi a database anche di tipo differente, ad esempio Oracle.

    Nelle interrogazioni è possibile fare dei JOIN diretti semplicemente anteponendo il nome del database al nome della tabella, esempio semplificativo:
    
    SELECT tabella1.campodb1, tabella2.campodb2 
    FROM db1.dbo.tabella1 
    INNER JOIN db2.dbo.tabella2 ON db1.dbo.tabella1.ID = db2.dbo.tabella2.ID
  • Re: Connessione a due database differenti

    Grazie a tutti per le risposte, il problema è che scrivendo così non mi funziona..
    In ogni caso voi dite che le righe di codice che ho scritto sono corrette al 100%?
    In caso ricontrollo altri parametri per capire che cosa sbaglio...
  • Re: Connessione a due database differenti

    Scrivendo così: cosa...?

    A parte questo, guarda qui:

    http://dev.mysql.com/doc/refman/5.0/en/use.htm
  • Re: Connessione a due database differenti

    gibra ha scritto:


    Scrivendo così: cosa...?

    A parte questo, guarda qui:

    http://dev.mysql.com/doc/refman/5.0/en/use.htm
    Intendevo il codice che ho riportato nel primo post.
    Comunque grazie, in effetti non conoscevo "USE", sta sera provo e vedo se va!
  • Re: Connessione a due database differenti

    Perfetto ha funzionato! Ho risolto.
    Grazie a tutti!
Devi accedere o registrarti per scrivere nel forum
8 risposte