Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: lavorare con 2 db

  1. #1

    lavorare con 2 db

    devo fare una cosa che non ho mai fatto,
    passare dei record da un db locale ad un db remoto nel momento in cui un utente, ad esempio, clicca su un pulsante sincronizza.

    come potrei fare?

    posso tenere 2 connessioni aperte contemporaneamente?

  2. #2
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    ma come sono configurati i due db e, soppratutto, dove sono hostati?
    cioè uno e su, ad esempio, aruba, e l'altro sul tuo pc dove gira un server apache e mysql?
    non credo si possa fare..
    almeno che prima crei la query (una specie di backup) in un file, lo fai scaricare e nel client la esegui come restore database..

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  3. #3
    è esattamente come dici tu.

    se io apro la connessione con il db in locale, faccio la query ed estraggo i dati che terrò in un array.

    poi chiudo la connessione con il db locale ed apro la connessione con il db remoto e faccio la query di insert caricando i dati che avevo prima estratto dal db in locale.

    questo è quello che pensavo di fare, purtroppo adesso non ho tempo per provare, volevo sapere se qualcun'altro ha fatto questa procedura e se è fattibile.

  4. #4
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    fattibile è fattibile..
    mha non sò se uno script che parte in locale è permesso collegarsi a un db online..in teoira si..
    di certo devi chiudere la connessione locale prima di effettuare quella online..

    altrimenti crei il file in locale, lo mandi via mail in automatico a un indirizzo sul server, estrapoli l'allegato einserisci i dati...

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  5. #5
    in effetti da locale il mio hoster non mi permette di collegarmi.
    devo trovare un altra soluzione, il file di backup lo vorrei evitare.

  6. #6
    ho un altra idea, faccio uno script che mi scrive un file, mi fa l'upload sul server e mi richiama un altro script sul server che mi legga questo file.

    ma questo file in che formato dovrebbe essere?
    sql, xml o cosa?

    il problema è che devo fare dei controlli prima di passare i record sul db online, ad esempio se l'articolo già esiste mi aggiorna solo la quantità, se l'articolo non esiste me lo passa tutto.

  7. #7
    il file potrebbe anche essere un semplice file di testo csv

    salvi i vari record su linee con i campi separati da virgole poi lo leggi riga per riga e lo salvi in un array con un explode.

    se vuoi ti posso anche fare un paio d'esempi.
    http://www.digitlife.it - Siti web in Friuli Venezia-Giulia.

  8. #8
    se hai degli esempi sotto mano fai pure.
    grazie, ciao.

  9. #9
    Originariamente inviato da PNK89
    il file potrebbe anche essere un semplice file di testo csv

    salvi i vari record su linee con i campi separati da virgole poi lo leggi riga per riga e lo salvi in un array con un explode.

    se vuoi ti posso anche fare un paio d'esempi.
    in effetti la tua potrebbe essere la soluzione migliore senza scomodare dump vari.

  10. #10
    Allora:

    Per scrivere il file:

    codice:
    <?php
    
    /*ti collegi al server e salvi il record in un'array bidimensionale in questo caso l'array si chiama $dati*/
    
    $fp = fopen("./dati.csv",'w');
    
    for($i=0; $i<count($dati); $i++){
    	for($j=0; $j<count($dati[$i]); $j++){
    		fwrite($fp, $dati[$i][$j], strlen($dati[$i][$j]));
    		if($j != (count($dati[$i])-1))
    			fwrite($fp, ",", strlen(","));
    	}
    	if($i != (count($dati)-1))
    		fwrite($fp, "\r\n", strlen("\r\n"));
    }
    
    fclose($fp);
    
    ?>

    Una volta caricato lo leggi con:

    codice:
    <?php
    
    $fp = fopen("./dati.csv",'r');
    
    $file = fread($fp,filesize("./dati.csv"));
    
    $aux = explode("\r\n",$file);
    
    for($i=0; $i<count($aux); $i++){
    	$dati[$i] = explode(",",$aux[$i]);
    }
    
    fclose($fp);
    
    
    
    /*Qui prendi i dati dall'array bidimensionale $dati e li metti nel db*/
    
    ?>
    naturalmente negli esempi il file si chiama dati.csv ed è nella directory degli script, ma basta cambiare i percorsi nelle due chiamate a fopen.
    http://www.digitlife.it - Siti web in Friuli Venezia-Giulia.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.