mapa3n Inviato 6 Marzo 2018 Segnala Condividi Inviato 6 Marzo 2018 Se ho un database SQL di nome CSV_DB come faccio ad importare programmaticamente in una nuova tabella di nome TABLE_1 il file CSV posizionato all'interno di una sottocartella presente nella cartella Documenti da uno script PHP. Ps Il set di caratteri è UTF-8, il delimitatore è il ; e la prima riga del file CSV deve contenere i nomi dei campi della tabella: Link al commento Condividi su altri siti Altre opzioni di condivisione...
pix Inviato 6 Marzo 2018 Segnala Condividi Inviato 6 Marzo 2018 Dallo script PHP apri il file in lettura (fopen), leggi le righe con fgetcsv. Con la prima riga crei la tabella scorrendo l'array dei valori restituito da fgetcsv. Con le altre righe inserisci i valori nello stesso ordine nella tabella appena creata. An a tuesday keeps the doctor away. proud member of < noi finti professionisti > club - tessera 044 Link al commento Condividi su altri siti Altre opzioni di condivisione...
mapa3n Inviato 6 Marzo 2018 Autore Segnala Condividi Inviato 6 Marzo 2018 1 ora fa, pix dice: Dallo script PHP apri il file in lettura (fopen), leggi le righe con fgetcsv. Con la prima riga crei la tabella scorrendo l'array dei valori restituito da fgetcsv. Con le altre righe inserisci i valori nello stesso ordine nella tabella appena creata. ...pensavo ci fosse una query SQL da passare al server SQL con mysqli_query();, come accade per le altre query da passare al database... Link al commento Condividi su altri siti Altre opzioni di condivisione...
pix Inviato 6 Marzo 2018 Segnala Condividi Inviato 6 Marzo 2018 Hai scritto di volerlo fare con uno script PHP... Se vuoi far fare il lavoro a MySQL puoi usare mysqlimport in uno script di istruzioni SQL e lanciare direttamente quello da terminale. Non serve per forza PHP. Il vantaggio di usare il metodo descritto nell'altro post è che hai maggior controllo sui dati potendo ad esempio validarli e prevedere segnalazioni di errori o ignorare del tutto righe che non rispondono a dei requisiti. Inoltre se cambi del tutto database se hai sviluppato usando PDO potrai farlo in un attimo, mentre lo script SQL potrebbe richiedere molto più lavoro. An a tuesday keeps the doctor away. proud member of < noi finti professionisti > club - tessera 044 Link al commento Condividi su altri siti Altre opzioni di condivisione...
mapa3n Inviato 7 Marzo 2018 Autore Segnala Condividi Inviato 7 Marzo 2018 11 ore fa, pix dice: Hai scritto di volerlo fare con uno script PHP... Se vuoi far fare il lavoro a MySQL puoi usare mysqlimport in uno script di istruzioni SQL e lanciare direttamente quello da terminale. Non serve per forza PHP. Il vantaggio di usare il metodo descritto nell'altro post è che hai maggior controllo sui dati potendo ad esempio validarli e prevedere segnalazioni di errori o ignorare del tutto righe che non rispondono a dei requisiti. Inoltre se cambi del tutto database se hai sviluppato usando PDO potrai farlo in un attimo, mentre lo script SQL potrebbe richiedere molto più lavoro. …e usare mysqli_import in uno script PHP? Link al commento Condividi su altri siti Altre opzioni di condivisione...
pix Inviato 7 Marzo 2018 Segnala Condividi Inviato 7 Marzo 2018 Prova... Ma non su tutti i server è consentito. il controllo che hai sui dati resta comunque lo stesso di uno script SQL An a tuesday keeps the doctor away. proud member of < noi finti professionisti > club - tessera 044 Link al commento Condividi su altri siti Altre opzioni di condivisione...
pix Inviato 7 Marzo 2018 Segnala Condividi Inviato 7 Marzo 2018 N.B: la funzione "mysqli_import" non credo esista. C'è la "mysqlimport" e puoi provare ad eseguire quella da PHP ma NON è una funzione di PHP bensì di MySQL, quindi in PHP devi praticamente richiamare il terminale (con exec() o simili). An a tuesday keeps the doctor away. proud member of < noi finti professionisti > club - tessera 044 Link al commento Condividi su altri siti Altre opzioni di condivisione...
mapa3n Inviato 7 Marzo 2018 Autore Segnala Condividi Inviato 7 Marzo 2018 8 ore fa, pix dice: N.B: la funzione "mysqli_import" non credo esista. C'è la "mysqlimport" e puoi provare ad eseguire quella da PHP ma NON è una funzione di PHP bensì di MySQL, quindi in PHP devi praticamente richiamare il terminale (con exec() o simili). ...hai regione non esiste una funzione mysqli_import in PHP, comunque pensavo che bastasse passare alla funzione mysqli_query() la stringa , tanto riga di intestazione è sempre uguale: il mio problema sarebbe inserire nelle celle il loro valore perché cambia per ogni files, la parte iniziale () è sempre uguale quindi non sarebbe un problema ma poi dopo VALUES... Comunque se l'alternativa che pensavo non è percorribile mi potresti spiegare, per favore, come utilizzare mysqlimport dopo aver richiamato il terminale? Link al commento Condividi su altri siti Altre opzioni di condivisione...
pix Inviato 7 Marzo 2018 Segnala Condividi Inviato 7 Marzo 2018 https://stackoverflow.com/questions/13121919/using-mysqlimport-inside-php-script An a tuesday keeps the doctor away. proud member of < noi finti professionisti > club - tessera 044 Link al commento Condividi su altri siti Altre opzioni di condivisione...
mapa3n Inviato 1 Aprile 2018 Autore Segnala Condividi Inviato 1 Aprile 2018 Il 7/3/2018 at 20:10, pix dice: https://stackoverflow.com/questions/13121919/using-mysqlimport-inside-php-script ...con -ppass, --local e --ignore-lines=1 immagino che indichi rispettivamente la password, che il database è sull'host locale e che la prima riga (che solitamente è quella di intestazione) venga ignorata, che essendo sempre uguale la posso creare come detto sopra, ma con --columns=column1,column2 non riesco a capire cosa fa, soprattutto perché il tutto è concatenato al path, poi indica un file txt nel finale...puoi aiutarmi a capire, per favore? Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.