Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di mick
    Registrato dal
    Jun 2004
    Messaggi
    34

    da excel a mysql tramite php -> problemi load data

    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?
    Mick: Be Simply Natural

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    cambiare versione di mysql?

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.