10. februar 2005 - 13:32
Der er
12 kommentarer og 1 løsning
Ændre i MySQL
Hej, jeg har konverteret min ACCESS database til MySQL, og forsøger nu at få dette ASP-script til at virke. Hvad skal ændres udover connection for at skrive i MySQL-databasen? <% Response.Buffer = true Response.CacheControl = "no-cache" Response.Expires = -1 %> <!-- #include file="Adovbs.inc" --> <% strNews = Request.Form("News") Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={mysql};SERVER=mysql.mondohosting.net;UID=xxx;PWD=xx;DATABASE=xx" Set rs = Server.CreateObject("ADODB.RecordSet") strSQL="SELECT * FROM News WHERE idNews=" & strNews rs.Open strSQL, Conn, 1, 3 if not rs.eof then if len(Request.Form("NewsHeader")) < 1 then strRedirect = "News.asp" Response.Redirect strRedirect end if if len(Request.Form("Source")) < 1 then strRedirect = "News.asp" Response.Redirect strRedirect end if rs("NewsHeader") = Request.Form("NewsHeader") rs("Source") = Request.Form("Source") end if rs.update rs.Close set rs = Nothing strRedirect = "News.asp" Response.Redirect strRedirect %> <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> </HEAD> <BODY> <P> </P> </BODY> </HTML>
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
10. februar 2005 - 13:39
#1
Det er nemmere bare at bruge connectionen til at updatere... Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={mysql};SERVER=mysql.mondohosting.net;UID=xxx;PWD=xx;DATABASE=xx" Conn.execute("update News set NewsHeader='"& Request.Form("NewsHeader") &"', Source='"& Request.Form("Source") &"' WHERE idNews=" & strNews) strRedirect = "News.asp" Response.Redirect strRedirect
10. februar 2005 - 13:49
#2
Dvs. den skal se sådan ud: <% Response.Buffer = true Response.CacheControl = "no-cache" Response.Expires = -1 %> <!-- #include file="Adovbs.inc" --> <% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={mysql};SERVER=mysql.mondohosting.net;UID=xx;PWD=xx;DATABASE=xx" Conn.execute("update News set NewsHeader='"& Request.Form("NewsHeader") &"', Source='"& Request.Form("Source") &"' WHERE idNews=" & strNews) strRedirect = "News.asp" Response.Redirect strRedirect %> <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> </HEAD> <BODY> <P> </P> </BODY> </HTML> Det funker stadig ikke.
10. februar 2005 - 13:54
#3
får du en fejl??
10. februar 2005 - 13:58
#4
Næh, den skriver bare "Siden kan ikke vises" og så "Der opstod en intern HTTP 500 serverfejl". Jeg har luret mig frem til nu at det er denne linie den brokker sig over: Conn.execute("update News set NewsHeader='"& Request.Form("NewsHeader") &"', Source='"& Request.Form("Source") &"' WHERE idNews=" & strNews)
10. februar 2005 - 14:00
#5
Gør det nogen forskel at det ikke er alle data i tabellen du ændrer på?
10. februar 2005 - 14:03
#6
Du skal lige have slået "fejlvisning" til i browseren. funktioner >> internetinstillinger >> advanceret >> fjern hak i "vis meddelser om uskadelige http-fejl"
10. februar 2005 - 14:11
#7
Ahh, så blev jeg også lidt klogere her :-) Microsoft OLE DB Provider for ODBC Drivers error '80040e14' You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 /savenews.asp, line 11
10. februar 2005 - 14:17
#8
Det kunne være en ' fejl. Kan ikke helt huske om MySQL godtager \' eller '', men det er jo bare at prøve: Conn.execute("update News set NewsHeader='"& replace(Request.Form("NewsHeader"),"'","''") &"', Source='"& replace(Request.Form("Source"),"'","''") &"' WHERE idNews=" & strNews) eller: Conn.execute("update News set NewsHeader='"& replace(Request.Form("NewsHeader"),"'","\'") &"', Source='"& replace(Request.Form("Source"),"'","\'") &"' WHERE idNews=" & strNews)
10. februar 2005 - 14:21
#9
Jeg får samme fejl ved begge disse løsninger.
10. februar 2005 - 14:23
#10
Så skal vi lige have den udskrevet på skærmen: sql = "update News set NewsHeader='"& Request.Form("NewsHeader") &"', Source='"& Request.Form("Source") &"' WHERE idNews=" & strNews response.write sql response.end Conn.execute(sql)
10. februar 2005 - 14:35
#11
Det ser foresten ud til at du mangler: strNews = Request.Form("News")
10. februar 2005 - 14:40
#12
Jeg beklager meget, men jeg har fundet fejlen i egne rækker - den fik ikke hentet idNews med pga en slåfejl. Dit første forslag virker til UG. Smid et svar så du kan få nogle velfortjente point. Nu jeg har dig - hvad hvis jeg skal oprette/slette i databasen? Hvordan ville den samme forespørgsel så se ud?
Computerworld tilbyder specialiserede kurser i database-management