Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Aires
    Registrato dal
    Jan 2010
    Messaggi
    740

    Connessioni DB Multiple (Mysql)

    Ciao a tutti,

    sto lavorando ad una pagina php nella quale devo pescare dati da due database, il Main ed il Secondario, ora ho un problema, ho settato le connessioni in un file apposito, chiamiamole link_main e link_secondary.

    Nella connect secondaria oltre ai parametri richiesti ho aggiunto il parametro true, in quanto lavorando su due DB della stessa macchina è richiesto.
    Bene sembrerebbe tutto ok ma le query sul db secondario non fungono.

    Esempio Struttura non funzionante
    Codice PHP:
    <?
    include "connections.php";
    $link_main open_connection_main();
    $link_secondary open_connection_secondary();

    # Eseguo una query sul main
    # Eseguo una query sul secondary
    ?>
    Esempio Struttura funzionante
    Codice PHP:
    <?
    include "connections.php";

    $link_main open_connection_main();
    # Eseguo una query sul main

    $link_secondary open_connection_secondary();
    # Eseguo una query sul secondary
    ?>
    Mi sapete spiegare perchè nel 1° caso non funge, mentre nel 2° caso si?
    Bisogna eseguire qualche altro accorgimento se si lavora su 2 DB ?
    Originariamente inviato da qazar
    Se finisci di leggere il thread mi sono corretto,è solo i kernel scritto in html.
    Originariamente inviato da rnlflame
    Comunque non dovevano crollare

  2. #2
    Se non posti il codice come facciamo a sapere cosa fanno le open_connection e le funzioni che eseguono le query?!?!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    a parte che postare il codice sarebbe essenziale, ma il problema è ovvio: non hai passato il parametro della connessione alla funzione che esegue la query

    www.php.net/mysql_query

  4. #4
    Utente di HTML.it L'avatar di Aires
    Registrato dal
    Jan 2010
    Messaggi
    740
    Scusate davo per scontato che le connect erano esatte in quanto singolarmente fungono, il parametro lo passo, posto allora in maniera più dettagliata

    File: connections.php
    Codice PHP:
    <?
    function open_connection_main() {
            
    $link_main mysql_connect("127.0.0.1""abc""def");
            
    mysql_select_db("aaa"$link_main);
            return 
    $link_main;
    }
        
        
    function 
    open_connection_secondary() {
            
    $link_secondary mysql_connect("127.0.0.1""abc""def"true);
            
    mysql_select_db("bbb"$link_secondary);
            return 
    $link_secondary;
    }
    ?>
    File: test.php
    Codice PHP:
    <?
    include "connections.php";
    $link_main open_connection_main();
    $link_secondary open_connection_secondary();

    # Eseguo una query sul main
    $src_aaa mysql_query("Select * From tabella_xyz limit 10",$link_main);
    while(
    $rs mysql_fetch_array($src)){
       echo 
    "
    ID: "
    .$rs['id']." -> ".$rs['descrizione']; 
    }

    # Eseguo una query sul secondary 
    $src_bbb mysql_query("Select * From tabella_abc limit 10",$link_secondary);
    while(
    $rs_b mysql_fetch_array($src_bbb)){
       echo 
    "
    ID: "
    .$rs_b['id']." -> ".$rs_b['descrizione']; 
    }
    ?>
    Grazie!
    Originariamente inviato da qazar
    Se finisci di leggere il thread mi sono corretto,è solo i kernel scritto in html.
    Originariamente inviato da rnlflame
    Comunque non dovevano crollare

  5. #5
    Potrebbe essere un errore di battitura ma non si sa mai:

    Codice PHP:
    ...
    $src_aaa mysql_query("Select * From tabella_xyz limit 10",$link_main);
    while(
    $rs mysql_fetch_array($src)){ 
    ... 
    dichiari $src_aaa ma poi nel tetch utilizzi $src.

    Per il resto così com'è il codice dovrebbe funzionare.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it L'avatar di Aires
    Registrato dal
    Jan 2010
    Messaggi
    740
    Originariamente inviato da satifal
    Potrebbe essere un errore di battitura ma non si sa mai:

    Codice PHP:
    ...
    $src_aaa mysql_query("Select * From tabella_xyz limit 10",$link_main);
    while(
    $rs mysql_fetch_array($src)){ 
    ... 
    dichiari $src_aaa ma poi nel tetch utilizzi $src.

    Per il resto così com'è il codice dovrebbe funzionare.
    Errore di battitura, a codice è esatto infatti, ho simulato la situazione con dati non reali.

    Comunque sia il codice sembra corretto, tant'è che eseguendo le query con una connection e basta o dichiarandola prima della query va, ma includende entrambe a inizio pagina viene eseguita solo una, ci ho sbattuto la testa 2/3 ore con ricerche su ricerche ma non ne son uscito, pure creando una paginetta dove mi limitavo a definire le due connect e le due query da eseguire
    Originariamente inviato da qazar
    Se finisci di leggere il thread mi sono corretto,è solo i kernel scritto in html.
    Originariamente inviato da rnlflame
    Comunque non dovevano crollare

  7. #7
    Ho provato il tuo codice e funziona perfettamente.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it L'avatar di Aires
    Registrato dal
    Jan 2010
    Messaggi
    740
    Boh a me non funge... pari pari... sarà la versione di php o qualche variabile nel php.ini a sto punto
    Originariamente inviato da qazar
    Se finisci di leggere il thread mi sono corretto,è solo i kernel scritto in html.
    Originariamente inviato da rnlflame
    Comunque non dovevano crollare

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.