Ho costruito uno script che pulisce il database di destinazione, poi apre una connessione verso il database di Access e MySQL pescando i dati dal primo ed inserendoli nel secondo.
Tutto funziona finchè sto sui 700 records, se aumento mi restituisce l'errore di pagina. E' come se andasse in sovraccarico.
Non è una questione di tempo dello script perchè ho anche impostato un tempo infinito e comunque l'importazione di 700 records dura qualche secondo.
Questo il codice che uso:
Codice PHP:
/* I parametri di connessione */
$path= "F:/Database/" ;
$db_name= "database.mdb" ;
$dsource=$path.$db_name ;
$cn_string="Provider=Microsoft.Jet.OLEDB.4.0;" ;
$cn_string.="Data Source=$dsource;" ;
$cn_string.="Jet OLEDB: Database Password= password;" ;
/* La connessione */
if (!file_exists($dsource) ){
die("Il database non esiste") ;
}
$cn= new COM("ADODB.Connection");
$cn->open($cn_string) ;
/* Istanziamo un oggetto Recordset */
$rs= new COM("ADODB.Recordset") ;
$query="SELECT * FROM gruppi ORDER BY id_gruppo";
$rs->Open($query,$cn) ;
echo "[b]GRUPPI[/b]:";
echo " Inserimento...";
while(!$rs->EOF){
$descrizione_gruppo = mysql_real_escape_string($rs->Fields['descrizione_gruppo']->value);
$query_inserimento = "INSERT INTO gruppi (id_gruppo, descr_gruppo, abilitazione, note, numero_iscritti) VALUES ('{$rs->Fields['id_gruppo']->value}', '$descrizione_gruppo', '{$rs->Fields['abilitazione_gruppo']->value}', '{$rs->Fields['note_gruppo']->value}', '{$rs->Fields['numero_iscritti_gruppo']->value}')";
$result = mysql_query($query_inserimento, $db_link) or die (mysql_error($result));
$rs->MoveNext() ;
}
$rs->Close();
echo "OK
";
E poi continuo con le altre tabelle.
Forse devo re-istanziare l'oggetto Recordset per ogni tabella?