ciao ragazzi, ho trovato/riadattato questo script:
<?
include("config.inc.php");
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
$query = "use $db_name";
$ca="";
$valu="";
if (mysql_query($query, $db)){
$percorso=$_GET['file'];
$dbtable=$_GET['dbtable'];
$campi = mysql_list_fields($db_name,$dbtable,$db);
$colonne = mysql_num_fields($campi);
$virgola = ",";
for ($k = 0; $k < $colonne; $k++){
if($k==$colonne-1) $ca = $ca.mysql_field_name($campi,$k);
else $ca = $ca.mysql_field_name($campi,$k).$virgola;
} //
mysql_query("LOAD DATA LOCAL INFILE '" . $percorso . "' INTO TABLE $dbtable FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\r\\n'",$db)or die("Errore2 ".mysql_error());
$separatore=";";
$apice= "'";
$nome_file=$_GET['file'];
if(file_exists($nome_file)){
$fp = fopen($nome_file, "r");
while (!feof($fp)) {
$linea = fgets($fp,4096);
$liste = explode($separatore,$linea);
$i=0;
$j=0;
for ($i = 0; $i < $colonne; $i++){
$r[$i]=addslashes(stripslashes($liste[$i]));}
$i=0;
for ($i = 0; $i < $colonne; $i++){echo $r[$i],'
';}
for($j=0;$i<$colonne;$j++){
if($j==0){$valu = $apice.$r[$j].$apice;}
else{$valu = $valu.$virgola.$apice.$r[$j].$apice;}
}
$query3 = "INSERT INTO $dbtable ($ca) VALUES ($valu)";
echo $query3,'
';
mysql_query($query3, $db) or die("Errore3 ".mysql_error());
fclose ($fp);
}
}else{echo "File introvabile
"; exit();}
}
else{echo "Connessione al db non riuscita";}
?>
ma ottengo uno spiacevole: "istruzione non supportata dalla tua versione di mysql" in mysql_query("LOAD DATA LOCAL INFILE '" . $percorso . "' INTO TABLE $dbtable FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\r\\n'",$db). Ma LOAD DATA è un comando che esiste dalla versione 3 di mysql, ed io, avendo easyphp 1.8, ho la versione 4 qualcosa (scusate la poca precisione).
Cosa posso fare?