mboost-dp1

Import af .sql database via php


Gå til bund
Gravatar #1 - Bjørn
24. sep. 2011 18:12
Hej kære newz

Jeg er rimelig ny til php og sidder og kæmper med et problem.

Ønskes: At importere en lokal* opbevaret .sql databasefil via. php. Scriptet skal efterfølgende køres dagligt via. crontab.

Så scriptet skal kunne:
- Tage den nyeste database fil fra en mappe. Pt er filerne navngivet ud fra unixtimestamp - dvs. "databasenavn.timestamp.sql!
- Uploade og (fuldstændig) erstatte den eksisterende databasefil

Jeg har forsøgt at google, men uden at jeg har fundet nogle løsninger som jeg forstår og kan tilpasse.

Kan du hjælpe eller har du et godt tips?

* Eller mulighed for at importere via ftp

/Bjørn
Gravatar #2 - arne_v
24. sep. 2011 18:41
#1

Lave en DROP og så læse .sql filen og udføre alle statements?
Gravatar #3 - fidomuh
24. sep. 2011 21:18
#1

phpMyAdmin har alle de funktioner og kan, saa vidt jeg husker, koeres autonomt via cron og kald fra curl.
Det kan vaere det er nemmere end at lave en SQL parser i PHP?

Hvis det koerer lokalt i shell ville jeg nok anbefale dig bare at koere mysql <fil.sql i et script.
Det kan du ogsaa koere fra PHP via exec fx.
Gravatar #4 - markjensen
24. sep. 2011 22:26
Sql parser? Kan indholdet af filen ikke bare smides direkte ind i et mysql_query kald? Hvis man altså er ligeglad med sikkerhed.
Gravatar #5 - arne_v
24. sep. 2011 22:53
#4

Hvis mysql_query understøtter flere sætninger i et enkelt kald og understøtter meget lange strenge: ja.
Gravatar #6 - fidomuh
25. sep. 2011 00:42
#4

Jo, det kan du nok godt. Virker det altid ? Ikke for mig ;)
JEg har altid parset det, men jeg har saa ogsaa kun brugt det med data udefra.

Internt har jeg altid brugt commandline direkte via Perl eller Bash. Sjaeldent har jeg gjort det via PHP og typisk kaldt et bash script via PHP ellers. :)
Gravatar #7 - arne_v
25. sep. 2011 00:57
arne_v (5) skrev:
Hvis mysql_query understøtter flere sætninger i et enkelt kald


http://php.net/manual/en/function.mysql-query.php


mysql_query() sends a unique query (multiple queries are not supported)
Gravatar #8 - fidomuh
25. sep. 2011 02:16
#7

Hvad med mysqli? ;)
Men det er en bedre ide at koere det via commandline mysql, hvis det er lokalt paa maskinen anyway.
Gravatar #9 - arne_v
25. sep. 2011 03:03
#8

Jeg mener, at mysli er det samme.

Det er et sikkerheds problem at kunne udføre flere statements i et kald.
Gravatar #10 - D_V
27. sep. 2011 09:47
#8, #9

Man kan udføre flere queries i samme kald med mysqli::multi-query()

Ved dog ikke hvor effektivt det er.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login