Avatar billede T101 Novice
13. marts 2003 - 12:10 Der er 10 kommentarer og
1 løsning

ASP og MySQL

Jeg har lavet et site i asp hvor jeg har brugt en access db. Nu er problemet bare at den server hvor sitet skal ligge køre MySQL. Jeg ved ikke så meget om MySQL. Jeg har fået oprettet en db i MySQL magen til den jeg havde i Access, men hvodan linker jeg til bet og får skrevet noget ud?

Med andre ord, hvordan gør jeg dette:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/BegASP/cgi-bin/news.mdb")
Conn.Open DSN

strSQL = "Select * From news Order By ID"

Set rs = Conn.Execute(strSQL)
Do While Not rs.EOF

Response.Write "<h1>" & rs("headline") &  "  <FONT SIZE=1>" & rs("dato") & "</FONT>" & "</h1><BLOCKQUOTE><h2>"  & rs("news") & "</h2></BLOCKQUOTE><BR>"

rs.MoveNext

Loop
%>

i MySQL?
Avatar billede nuno Nybegynder
13. marts 2003 - 12:19 #1
du ændrer din DSN til fx

"DRIVER={MySql};SERVER=Server-adresse; DATABASE=ditDatabaseNavn; UID=ditBrugerID; PWD=ditPassword"

ellers kan du connecte på ca. samme måde - der er self. nogle lidt anderledes funktionaliteter i MySQL - men det udtræk du laver ovenfor burde du nok kunne gøre.

/nuno
Avatar billede T101 Novice
13. marts 2003 - 12:43 #2
Det så ud til at virke for siden kommer da ikke med fejl, men den er svær at checke for der står ikke noget i min db. Det er så her næste åroblem kommmer. Min indsæts linie lyder:

strSQL = "Insert into news (headline, news, dato) values('" & Request.Form("headline") & "' , '" & Request.Form("news") & "' , #"& Now() &"# )"

Conn.Execute(strSQL)

Den kommer med fejlen:

ADODB.Connection.1 error '80004005'

SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax near '' at line 1

/opret.asp, line 20
Avatar billede T101 Novice
13. marts 2003 - 12:44 #3
10 bonus point for den :-)
Avatar billede nuno Nybegynder
13. marts 2003 - 12:54 #4
hvilken datatype er dit datofelt?
Avatar billede T101 Novice
13. marts 2003 - 12:55 #5
datetime tror jeg vist den hedder ... Enten det eller timedate
Avatar billede nuno Nybegynder
13. marts 2003 - 13:00 #6
hvis det er en datetime kan du bare:

strSQL = "Insert into news (headline, news, dato) values('" & Request.Form("headline") & "' , '" & Request.Form("news") & "' , "& Now() &" )"

Now() er en funktion i MySQL som kan bruges uden # til angivelse af dato

/nuno
Avatar billede T101 Novice
13. marts 2003 - 13:03 #7
Så siger den:

ADODB.Connection.1 error '80004005'

SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax near '12:57:11 PM )' at line 1


/opret.asp, line 20

Så noget fik den da fat i ...
Avatar billede nuno Nybegynder
13. marts 2003 - 13:35 #8
prøv at skrive din sqlstreng ud lige inden du laver din Execute

response.write strSQL
response.end

hvad giver det som resultat?
Avatar billede T101 Novice
13. marts 2003 - 14:44 #9
Sry sad lige og lavede noget andet ... Den sagde:
Insert into news (headline, news, dato) values('Hej' , 'Hej ' , 3/13/2003 2:38:49 PM )
Avatar billede nuno Nybegynder
13. marts 2003 - 14:57 #10
hmm ok - jeg var kommet til at lave Now() i asp-koden istedet for SQL-strengen - prøv dette istedet:

strSQL = "Insert into news (headline, news, dato) values('" & Request.Form("headline") & "' , '" & Request.Form("news") & "' , Now())"

/nuno
Avatar billede T101 Novice
13. marts 2003 - 15:01 #11
Det hele køre nu. Mange tak skal du have :-D
Opretter lige et spørgsmål til bonus point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester