Avatar billede kook Nybegynder
02. november 2003 - 21:37 Der er 23 kommentarer og
1 løsning

Problemer med at update en db-record

Jeg bruger ASP og MySQL til at vedligeholde siden. Men jeg kan ikke få mit script til at opdatere mere end et enkelt felt ad gangen.

Her er scriptet:
<%
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
strSQL = "UPDATE uplink_links SET link_cat='" & request.form("category") & "', SET link_name='" & request.form("link_name") & "', SET link_url='" & request.form("link_url") & "' WHERE id='" & request.form("link_id") & "'"

Conn.Execute (strSQL)

Conn.Close
Set Conn = Nothing

Response.Redirect("?action=")
End If
%>

Og her er den fejl jeg modtager:
Microsoft OLE DB Provider for ODBC Drivers error '80040e09'

[TCX][MyODBC]You have an error in your SQL syntax near 'UPDATEBATCH uplink_links SET link_cat='5', SET link_name='K10k', SET link_url='http://www.k10k.net' at line 1

/uplink/bin/includes/popups/link.asp, line 173

Og hvis I undrer jer over hvad det er til så er det til en online link database. ;)

Håber I kan hjælpe mig ...
- kook
Avatar billede Slettet bruger
02. november 2003 - 21:38 #1
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
strSQL = "UPDATE uplink_links SET link_cat='" & request.form("category") & "', link_name='" & request.form("link_name") & "', link_url='" & request.form("link_url") & "' WHERE id='" & request.form("link_id") & "'"
Avatar billede dawin_dk Nybegynder
02. november 2003 - 21:38 #2
du har ' rundt om tallet 5 .. det er sikkert af typen tal og der skal derfor ikke være ' rundt om det ..
Avatar billede Slettet bruger
02. november 2003 - 21:39 #3
Du skal kun bruge set 1 gang:
update tabel set felt1=værdi1, felt2=værdi2 og så videre.
Avatar billede kook Nybegynder
02. november 2003 - 21:41 #4
Det tror jeg ikke da alle variablerne i link_cat, link_name og link_url er variabler hevet ind fra en form. Altså med '" & Request.Form("link_cat") & "'

Som der også står i mit oprindelige inlæg? Eller er det mig der har gloet mig blind på det?
Avatar billede Slettet bruger
02. november 2003 - 21:42 #5
Hvad tror du ikke?
Avatar billede kook Nybegynder
02. november 2003 - 21:43 #6
Bertie>> Nej det virker heller ikke ... får denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e09'

[TCX][MyODBC]You have an error in your SQL syntax near 'UPDATEBATCH uplink_links SET link_cat='5', link_name='K10k', link_url='htt' at line 1

/uplink/bin/includes/popups/link.asp, line 173
Avatar billede kook Nybegynder
02. november 2003 - 21:44 #7
Og det er selvom mit script nu ser sådan her ud:

<%
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
strSQL = "UPDATEBATCH uplink_links SET link_cat='" & request.form("category") & "', link_name='" & request.form("link_name") & "', link_url='" & request.form("link_url") & "' WHERE id='" & request.form("link_id") & "'"
set rs = Conn.Execute (strSQL)

Conn.Close
Set Conn = Nothing
Response.Redirect("?action=&message=1")
End If
%>
Avatar billede Slettet bruger
02. november 2003 - 21:46 #8
Så skal du lige have checket hvilke typer dine felter er i din database, hvis det er numerisk skal der ikke ' rundt om.
Avatar billede Slettet bruger
02. november 2003 - 21:48 #9
Din ID er garanteret ikke tekst, så prøv at fjerne ' rundt om den.
Avatar billede kook Nybegynder
02. november 2003 - 21:48 #10
Alle felter er varchar ... skulle bare bruge en hurtig test!
Kan det være det? Jeg får ikke den fejl når det kun er et enkelt felt der skal opdateres. Fejlen opstår først ved mere end en fejl.
Avatar billede Slettet bruger
02. november 2003 - 21:49 #11
Ok, så prøve istedet for at lave denne set rs = Conn.Execute (strSQL)
så gør lige sådan
response.write strsql
response.end så vi kan se din sql sætning.
Avatar billede kook Nybegynder
02. november 2003 - 21:49 #12
Nope, det var heller ikke det med at id'et ikke var tekst. Fik samme fejl.
Avatar billede Slettet bruger
02. november 2003 - 21:50 #13
Hmm, først bruger du UPDATE men i en senere kommentar skriver du UPDATEBATCH, må jeg spørge hvorfor?
Avatar billede kook Nybegynder
02. november 2003 - 21:52 #14
Den response.write strsql giver mig samme fejl.
Nu begynder jeg altså at blive bekymret. Det her er meget mærkeligt.
Avatar billede kook Nybegynder
02. november 2003 - 21:53 #15
UPS. Min brøler. Her er hvad jeg får ved bruge af response.write strsql:

UPDATE uplink_links SET link_cat='5', link_name='Kaliber 10.000', link_url='http://www.k10k.net' WHERE id='3'
Avatar billede Slettet bruger
02. november 2003 - 21:56 #16
Tja hvis du er sikker på at alle dine felter er varchar kan jeg ikke se at der skulle være noget galt med denne sætning. Og du er sikker på at tabelnavnet og felterne er stavet rigtigt.
Avatar billede kook Nybegynder
02. november 2003 - 21:57 #17
Det er jeg ... det eneste felt der afviger er mit ID felt der er mediumint.
Tabelnavnet og felterne er stavet rigtigt ... har krydsreferet! ;)
Avatar billede Slettet bruger
02. november 2003 - 21:58 #18
Jamen så skal du fjerne ' omkring ID for så er det jo numerisk :-)
Avatar billede kook Nybegynder
02. november 2003 - 21:59 #19
Uhhh ... men det mener jeg også knækker koden. Oh well, jeg er villig til at prøve at svinge en død kat overhovedet nu, so here goes nothing!
Avatar billede Slettet bruger
02. november 2003 - 22:00 #20
Hvad mener du med at det knækker koden?
Avatar billede kook Nybegynder
02. november 2003 - 22:03 #21
Nu får jeg så denne fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[TCX][MyODBC]Unknown column 'link_id' in 'where clause'

/uplink/bin/includes/popups/link.asp, line 175


Og mit script ser sådan her ud nu:
<%
link_id = Request.Form("link_id")
                       
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
strSQL = "UPDATE uplink_links SET link_cat='" & request.form("link_cat") & "', link_name='" & request.form("link_name") & "', link_url='" & request.form("link_url") & "' WHERE id=link_id"
Conn.execute(strSQL)
                       
Set Conn = Nothing
Set rs = Nothing
                       
Response.Redirect("?action=&message=1")
End If
%>
Avatar billede Slettet bruger
02. november 2003 - 22:04 #22
Sådan:

If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
strSQL = "UPDATE uplink_links SET link_cat='" & request.form("link_cat") & "', link_name='" & request.form("link_name") & "', link_url='" & request.form("link_url") & "' WHERE id= " & link_id
Conn.execute(strSQL)
Avatar billede kook Nybegynder
02. november 2003 - 22:07 #23
DUDE! Du er kongen. Mange tak for hjælpen ...
Det virker ... nu kan jeg komme videre med mit liv.

*sætter katten på gulvet igen og slapper af*
Avatar billede Slettet bruger
02. november 2003 - 22:08 #24
Fint og tak for 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