[PHP/MySQL] Database import LOAD DATA INFILE

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Ik ben bezig met een tabel te importeren via een textbestand, met behulp van "LOAD DATA INFILE". Dit werkt allemaal goed. Maar nu probeer ik een complete database uit een textbestand in te lezen met behulp van LOAD DATA INFILE.

Is dit mogelijk met een bestand?

Of moet ik voor elke tabel een bestand maken?

Of is hier een andere/betere oplossing voor?

Hiervoor had ik de import pagina van phpMyAdmin omgebouwd om een database te importeren. Dit werkt goed maar alleen bij grote bestanden 5 á 6 MB duurt het extreem lang. Daarom heb ik gekozen voor LOAD DATA INFILE.

Wie kan mij een duwtje in de goede richting geven?

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 20-08 21:38
Waarim gebruik je niet gewoon command-line MySQL? Je kunt het eventueel via PHP met exec nog zonder SSH o.i.d. doen.

code:
1
mysql -u[user] -p[password] [database] < [sourcefile.sql]

of
code:
1
2
mysql -u[user] -p[password] [database]
-> source [sourcefile.sql]

of
code:
1
2
3
mysql -u[user] -p[password] 
-> use [database]
-> source [sourcefile.sql]


De eerste is dus het makelijkst als je het via PHP doet, omdat het op 1 line staat.

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


Verwijderd

Topicstarter
Alex de Groot schreef op 26 februari 2004 @ 10:42:
Waarim gebruik je niet gewoon command-line MySQL? Je kunt het eventueel via PHP met exec nog zonder SSH o.i.d. doen.

code:
1
mysql -u[user] -p[password] [database] < [sourcefile.sql]
Dat kan ook maar dan zit je met het feit dat in sourcefile.sql sql-queries staan. En dat betekend dat er heel veel overhead in staat.

Ik was juist zo gecharmeerd van LOAD DATE INFILE omdat je dan alleen de data in het bestand hebt staan. En aangezien dit bestand geupload moet worden heb ik hem het liefst zo klein mogelijk.

Iemand anders nog suggesties?

  • CyberJack
  • Registratie: Augustus 2002
  • Laatst online: 03-09 14:36
met een LOAD DATE INFILE moet je per tabel een bestand aanmaken.

Als je van deze functie gebruik wilt maken kan je de geuploade file eerst parsen, en hier vervolgens meerdere bestanden van maken.
Vervolgens kan je dan per gegenereerde file een LOAD DAT INFILE doen.

Als je dit niet wilt, dan hou je (denk ik) alleen de eerder geposte oplossing over.

https://bottenberg.dev


Verwijderd

Topicstarter
Daar was ik al bang voor. Dan moet het maar op die manier.

Bedankt voor de reacties!