• User

    Piccolo problema con load data

    salve, ho creato una pagina di upload di file sul mio server.
    vorrei che mi aggiornasse una tabella del database in base ai parametri che gli passo, ma sto avendo un po' di problemi...

    usando questo codice:
    [php]
    <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> PHP upload test page </title>
    </head>
    <body>
    <?php
    error_reporting(2047);
    if (isset($_POST["invio"])) {
    $percorso = "upload/";
    if (is_uploaded_file($_FILES['file1']['tmp_name'])) {
    if (move_uploaded_file($_FILES['file1']['tmp_name'], $percorso.$_FILES['file1']['name'])) {
    mysql_query("LOAD DATA LOCAL INFILE $percorso.$_FILES['file1']['name'] INTO TABLE temp FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\' LINES TERMINATED BY '\r\n'")
    echo 'Nome file: <b>'.$_FILES['file1']['name'].'</b><br>';
    echo 'MIME Type: <b>'.$_FILES['file1']['type'].'</b><br>';
    echo 'Dimensione: <b>'.$_FILES['file1'].'</b> byte<br>';
    echo '======================<br>';
    echo 'File caricato correttamente<br><br>';
    } else {
    echo "si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
    }
    } else {
    echo "si è verificato un errore durante l'upload: ".$_FILES["file1"]["error"];
    }
    } else {
    // HTML ?>
    <form enctype="multipart/form-data" method="post" action="" name="uploadform">
    seleziona il file da caricare sul server:
    <br>
    <input type="file" name="file1" size="50">
    <br>
    <input type="submit" value="invia" name="invio">
    </form>
    <?php
    }
    ?>
    </body>
    </html>
    [/php]ricevo questo errore:

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING on line 13
    ora, so perfettamente che è un problema stupido (avrò fatto casino con le virgolette), ma non so come andare avanti...
    mi potreste dare una mano?

    grazie

    piccolo edit: ho visto adesso che il mettendo lo stile php mi "mangia" un paio di caratteri nella funzione LOAD DATA. Questo è il pezzo scritto correttamente: ESCAPED BY '\' LINES TERMINATED BY '\r\n'


  • User

    allora, ho risolto il problema si sintassi, adesso ho spezzato il codice in due pagine differenti: in una seleziono il file e nell'altra dovrei aggiornare la tabella.
    Dico dovrei, ma in realtà non succede niente... non ho errori, ma se vado a vedere nel database la tabella non è stata toccata...
    mi potreste dare una mano?

    questo è il codice che uso:

    [php]
    include "config.php";
    error_reporting(2047);
    $percorso = "upload/";
    is_uploaded_file($_FILES['file1']['tmp_name']);
    move_uploaded_file($_FILES['file1']['tmp_name'], $percorso.$_FILES['file1']['name']);
    $temp = $percorso.$_FILES['file1']['name'];
    $sql = 'LOAD DATA LOCAL INFILE '$temp' INTO TABLE temp FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n''. ' ';
    mysql_query($sql);
    echo 'Nome file: <b>'.$_FILES['file1']['name'].'</b><br>';
    echo 'MIME Type: <b>'.$_FILES['file1']['type'].'</b><br>';
    echo 'Dimensione: <b>'.$_FILES['file1'].'</b> byte<br>';
    echo '======================<br>';
    echo 'File caricato correttamente<br><br>';
    [/php]