Hej
Någon som har tips om hur jag ska bära mig åt för att få ca 5000 artiklar från Excel till min MySQL-databas (använder 24-7webhosting.com)
Om det inte skulle gå alls, borde det väl gå att exportera excelfilen till kommaseparerad textfil och sen pula in den i db:n, men helst vill jag göra det direkt.
Nån som vet?
------------------
667 - The neighbour of the beast.
Om det inte skulle gå alls, borde det väl gå att exportera excelfilen till kommaseparerad textfil och sen pula in den i db:n, men helst vill jag göra det direkt.
Exakt så får du göra. Om du använder phpmyadmin så läser du bara in textfilen och anger att kolumnerna separeras med kommatecken.
hmm... testade lite lokalt, bara för att veta hur CSVfilen skulle se ut. Då blev det så här fel:
-------
SQL-query:
LOAD DATA LOCAL INFILE 'c:\windows\TEMP\php7240.TMP' INTO TABLE test FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\' LINES TERMINATED BY '\n'
MySQL said: File 'c:windowstempphp7240.tmp' not found (Errcode: 2)
-----------
CSV-filen ser ut så här:
-----
1;fd g
2;ffs4
3;gg4sg
osv....
------
vad göra åt detta?
------------------
667 - The neighbour of the beast.
Jag håller med Vide, varför mellanlagra?
Du kan använda ett excel-dokument på samma sätt som du gör med vanliga databaser. Hemligheten ligger i drivern Microsoft Excel Driver (*.xls).
Här kommer lite ledtrådar i ett kodexempel som du kan experimentera med:
set excel = Server.CreateObject("ADODB.Connection")
excel.Open "driver={Microsoft Excel Driver (*.xls)}; DBQ=" & Server.MapPath("/mittlilladok.xls")
set mysql = Server.CreateObject("ADODB.Connection")
mysql.Open "driver=MySQL; server=DIN_SERVER; uid=USER; pwd=PASSWORD; database=DB"
set rsXls = excel.Execute("SELECT fld1, fld2, fld3 FROM spreadSheet")
Do Until rsXls.EOF
mysql.Execute("INSERT INTO spreadSheet (fld1, fld2, fld3) VALUES('" & rsXls("fld1") & "', '" & rsXls("fld2") & "', '" & rsXls("fld3") & "')")
rsXls.MoveNext
Loop
rsXls.Close
excel.Close
mysql.Close
set rsXls = Nothing
set excel = Nothing
set mysql = Nothin
Spin, jag testade din kod, men det verkar bli strul med excel-bladet.
Fel:
--------
Microsoft OLE DB Provider for ODBC Drivers fel '80040e37'
[Microsoft][ODBC Excel Driver] The Microsoft Jet database engine could not find the object 'SpreadSheet'. Make sure the object exists and that you spell its name and the path name correctly.
/ddrive/sprinfo/excel_mysql_test/test1.asp, rad 14
-----------
koden:
set excel = Server.CreateObject("ADODB.Connection")
excel.Open "driver={Microsoft Excel Driver (*.xls)}; DBQ=" & Server.MapPath("/mittlilladok.xls")
set mysql = Server.CreateObject("ADODB.Connection")
mysql.Open "driver=MySQL; server=Localhost; uid=XXXX; pwd=XXXX; database=test"
set rsXls = excel.Execute("SELECT fld1, fld2, fld3 FROM SpreadSheet")
Do Until rsXls.EOF
mysql.Execute("INSERT INTO spreadSheet (fld1, fld2, fld3) VALUES('" & rsXls("fld1") & "', '" & rsXls("fld2") & "', '" & rsXls("fld3") & "')")
rsXls.MoveNext
Loop
rsXls.Close
excel.Close
mysql.Close
set rsXls = Nothing
set excel = Nothing
set mysql = Nothing
Jag kan inte fatta det på annat sätt än att bladet i Excel-filen skall heta SpreadSheet, men då funkar det icke...
------------------
667 - The neighbour of the beast.