Vai al contenuto

Benvenuto nella community di Italiamac Forum

Guest Image

Benvenuto su Italiamac, la più grande comunità AMUG italiana riconosciuta da Apple. La consultazione è libera. Se vuoi anche partecipare attivamente alle discussioni pubblicando post e messaggi puoi iscriverti gratuitamente, avrai molti vantaggi:

  • Pubblicare post, messaggi e richieste di aiuto
  • Fare amicizia e usare i messaggi privati fra utenti
  • Pubblicare annunci di vendita di usato
  • Usare tutte le funzioni della community

ISCRIVITI GRATIS


Change Mode






Importare un file CSV in un database SQL


Recommended Posts

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:

Schermata 2018-03-06 alle 14.55.32.png

Modificato da mapa3n
Link di questo messaggio
Condividi su altri siti

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 di questo messaggio
Condividi su altri siti
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 di questo messaggio
Condividi su altri siti

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 di questo messaggio
Condividi su altri siti
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 di questo messaggio
Condividi su altri siti

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 di questo messaggio
Condividi su altri siti

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 di questo messaggio
Condividi su altri siti
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 CREATE.png.0e571473bdf20e47bc43a0035c37f2d6.png, tanto riga di intestazione è sempre uguale: il mio problema sarebbe inserire nelle celle il loro valore perché cambia per ogni files, la parte iniziale (INSERT.png.bb1768d35ea712118f83883d1f6c345e.png) è 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 di questo messaggio
Condividi su altri siti
  • 4 weeks later...
Il 7/3/2018 at 20:10, pix dice:

...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 di questo messaggio
Condividi su altri siti

Rispondi e partecipa alla discusione

Puoi rispondere subito e iscriverti successivamente. If you have an account, sign in now to post with your account.

Ospite
Rispondi a questa discussione...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Crea Nuovo...

Info

Questo sito utilizza cookies, anche di terze parti e profilazione. Utilizzando il sito acconsenti al loro impiego e dichiari di aver letto e di accettare: Privacy Policy Termini di utilizzo