Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619

    [PHP]problema inserimento valori di un file .csv in mysql

    Ciao,

    ho un file .csv da cui leggo riga per riga i valori li inserisco in un array e poi li inserisco in una tabella mysql così:

    mysql_query ("INSERT INTO aziende (ragsociale,via,cap,city,prov) VALUES ('$azienda[0]', '$azienda[1]','$azienda[2]','$azienda[3]','$azienda[4]')");

    Il problema e' che se in una riga del file csv c'e' un singolo apice " ' " non mi inserisce quella riga.

    Qualcuno sa aiutarmi?

  2. #2
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    prova cosi:
    codice:
     mysql_query ("INSERT INTO aziende (ragsociale,via,cap,city,prov) VALUES ('".mysql_escape_string($azienda[0])."', '".mysql_escape_string($azienda[1])."','".mysql_escape_string($azienda[2])."','".mysql_escape_string($azienda[3])."
    ','".mysql_escape_string($azienda[4])."')");
    puoi togliere la funzione mysql_escape_string() dove sei sicuro che il valore da inserire e' numerico
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  3. #3
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Gia' meglio.
    Prima mi inseriva 507 record su 563.
    Adesso ne inserisce 554.
    Adesso controllo quale non ha inserito e ti faccio sapere.

  4. #4
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    Ok, attendo tue notizie...
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  5. #5
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Allora ho cancellato alcuni record che erano doppi.
    Adesso inserisce 554 record su 556.

    probabilmente ce ne sono ancora 2 doppi che non ho visto.

    Adesso ricontrollo e quando sara' tutto a posto ti faccio sapere e ti faccio un altra domanda.

    Grazie mille per la modifica al codice.

  6. #6
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    attendo la domanda, e spero di saper rispondere...
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  7. #7
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Non ci sono doppioni.

    Ho trovato solo una delle due righe che non inserisce nel db.

    E' stranissimo:


    Riesce a inserire questa:

    FUSO D'ORO;VIA ROMA 14-20;;BASSANO;VI;VENETO

    Ma non mi inserisce questa:

    FUSO D'ORO;VIA MARSILIO DA PADOVA 21/22;;PADOVA;PD;VENETO


    proprio non capisco.

  8. #8
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    Probabilmente si pianta per il carattere / prova ad aggiungere la funzione addslashes(), come in questa query:
    codice:
    mysql_query ("INSERT INTO aziende (ragsociale,via,cap,city,prov) VALUES ('".mysql_escape_string($azienda[0])."', '".addslashes(mysql_escape_string($azienda[1]))."','".mysql_escape_string($azienda[2])."','".mysql_escape_string($azienda[3])."
    ','".mysql_escape_string($azienda[4])."')");
    In teoria la funzione mysql_escape_string() dovrebbe fare l'escape di tutti caratteri che danno problemi, attento che aggiungendo la funzione addslashes potrebbero esserci dei casini in questo caso ti conviene fare un output delle query:
    codice:
    $query = "INSERT INTO aziende (ragsociale,via,cap,city,prov) VALUES ('".mysql_escape_string($azienda[0])."', '".addslashes(mysql_escape_string($azienda[1]))."','".mysql_escape_string($azienda[2])."','".mysql_escape_string($azienda[3])."
    ','".mysql_escape_string($azienda[4])."')";
    print($query."
    "); /*visualizzazione query*/
    mysql_query($query);
    In questa maniera tieni traccia delle query di inserimento, trovato l'errore puoi togliere la riga relativa alla print()
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  9. #9
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Pero' ci sono tantissimi altri record che contengono una slash "/"

    E si pianta solo su quello?

  10. #10
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Se li stampo a video li vedo tutti, anche i due che non inserisce nel db.

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.