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?
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?
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.
è 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.
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.
in effetti da locale il mio hoster non mi permette di collegarmi.
devo trovare un altra soluzione, il file di backup lo vorrei evitare.
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.
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.
se hai degli esempi sotto mano fai pure.
grazie, ciao.
in effetti la tua potrebbe essere la soluzione migliore senza scomodare dump vari.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.
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:
naturalmente negli esempi il file si chiama dati.csv ed è nella directory degli script, ma basta cambiare i percorsi nelle due chiamate a fopen.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*/ ?>
http://www.digitlife.it - Siti web in Friuli Venezia-Giulia.