Avatar billede annettef Nybegynder
29. april 2005 - 10:33 Der er 9 kommentarer og
1 løsning

Problemer med INSERT INTO

Hej

Jeg har følgende side, hvor jeg ønsker at gemme nogle oplysninger i min database - problemet er bare at jeg får en fejl når jeg forsøger at gemme oplysningerne.

::::MIN SIDE::::
<%@ Language=VBScript %>
<!-- #include file="db.asp" -->
<!-- #include file="adovbs.inc" -->
<!--#include file="dbconn.inc"--><!-- Database forbindelse oprettes via ekstern fil-->
<%

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

    intOrderID = cstr(Session("orderID"))
%>

<html>
<head>
<title>Datronic ApS</title>
<Link Rel="stylesheet" href="datronic.css" Type="text/css" > <!-- link til ekstern style sheet -->
<style type="text/css">
<!--
body {
    margin-top: 0px;
    margin-left: 4px;
}
-->
</style>
<style type="text/css">
<!--
.style1 {color: #FFFFFF}
-->
</style>
</head>
<body>
<%
' Update funktion
' Sender kundeoplysningerne til databasen
SQL = "INSERT INTO ordrelinie (fNavn,eNavn,email,adresse1,postnr,city,land,telefon,shipAdresse) WHERE orderID = " & intOrderID  ' SQL sætning der insætter en ny række i db
SQL = SQL & " VALUES ('" & request.form("strFirst") & "','" & request.form("strLast") & "','" & request.form("strEmail") & "','" & request.form("strAddress1") & "','" & request.form("strPostalCode") & "','" & request.form("strCity") & "','" & request.form("strCountry") & "','" & request.form("strPhone") & "','" & request.form("strShipAdresse") & "')"

response.write sql ' skriver i db

' Sender brugeren til næste side når databasen er opdateret
Conn.Execute(SQL)
response.redirect("checkout2B.asp?orderID =" & intOrderID)

conn.Close 'luk db
Set conn = nothing
Set SQL = nothing
%>
</body>
</html>
::::SLUT::::

Jeg får følgende fejl:
INSERT INTO ordrelinie (fNavn,eNavn,email,adresse1,postnr,city,land,telefon,shipAdresse) WHERE orderID = 28 VALUES ('Annette','Andersen','annette@ferslev.com','Test','1111','test','Danmark','11111111','Dette er en test 1542 test')
Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement.

/checkout2A.asp, line 41

Linie 41 er følgende linie
35  SQL = "INSERT INTO ordrelinie (fNavn,eNavn,email,adresse1,postnr,city,land,telefon,shipAdresse) WHERE orderID = " & intOrderID  ' SQL sætning der insætter en ny række i db
36  SQL = SQL & " VALUES ('" & request.form("strFirst") & "','" & request.form("strLast") & "','" & request.form("strEmail") & "','" & request.form("strAddress1") & "','" & request.form("strPostalCode") & "','" & request.form("strCity") & "','" & request.form("strCountry") & "','" & request.form("strPhone") & "','" & request.form("strShipAdresse") & "')"
37
38  response.write sql ' skriver i db
39
40  ' Sender brugeren til næste side når databasen er opdateret
41  Conn.Execute(SQL)
42  response.redirect("checkout2B.asp?orderID =" & intOrderID)

Hvad er det jeg gør forkert?

/Annette
Avatar billede busschou Praktikant
29. april 2005 - 10:34 #1
hvad skriver den ud til dig i din response.write sql?
Avatar billede busschou Praktikant
29. april 2005 - 10:35 #2
du skal ikke have en Where med når du bruger Insert Into!
Avatar billede busschou Praktikant
29. april 2005 - 10:36 #3
enten indsætter man ved
Insert Into tabel (felt1,felt2) Values (værdi1,værdi2)
eller også updaterer man
Update tabel Set felt1 = værdi1, felt2 = værdi2 Where id = ditId
Avatar billede cpufan Juniormester
29. april 2005 - 10:37 #4
hvis data er der i forvejen, skal du bruge: UPDATE ordrelinie
Avatar billede annettef Nybegynder
29. april 2005 - 10:37 #5
Der bliver ikke skrevet noget ud på skærmen andet end fejlen.

De oplysninger som jeg skal sætte ind i databasen, skal sættes ind i en række hvor der allerede er oplysninger i nogle andre felter - skal jeg så bruge UPDATE i stedet for?
Avatar billede busschou Praktikant
29. april 2005 - 10:38 #6
Ja det skal du
Avatar billede annettef Nybegynder
29. april 2005 - 10:38 #7
okay du var hurtigere end mig - jeg prøver lige at lave min kode om så :o)
Avatar billede busschou Praktikant
29. april 2005 - 10:39 #8
i øvrigt... hvis dit postnr er et tal..så skal du ikke have ' omkring...det skal du kun omkring tekst :o)
Avatar billede annettef Nybegynder
29. april 2005 - 10:54 #9
Så fik jeg rettet min kode så jeg bruger UPDATE i stedet for - og nu fungerer det som det skal.

Busschou læg et svar, så du kan få point!

Lige for en god ordens skyld så ser min kode ud på følgende måde nu:
::::KODE:::
<%@ Language=VBScript %>
<!-- #include file="db.asp" -->
<!-- #include file="adovbs.inc" -->
<!--#include file="dbconn.inc"--><!-- Database forbindelse oprettes via ekstern fil-->
<%

    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open ConString

    intOrderID = cstr(Session("orderID"))
%>

<html>
<head>
<title>Datronic ApS</title>
<Link Rel="stylesheet" href="datronic.css" Type="text/css" > <!-- link til ekstern style sheet -->
<style type="text/css">
<!--
body {
    margin-top: 0px;
    margin-left: 4px;
}
-->
</style>
<style type="text/css">
<!--
.style1 {color: #FFFFFF}
-->
</style>
</head>
<body>
<%
' Update funktion
' Sender kundeoplysningerne til databasen
SQL = "UPDATE ordrelinie set fNavn = '" & request.form("strFirst") & "', eNavn = '" & request.form("strLast") & "', email = '" & request.form("strEmail") & "', adresse1 = '" & request.form("strAddress1") & "', postnr = " & request.form("strPostalCode") & ", city = '"& request.form("strCity") & "', land = '"& request.form("strCountry") & "', telefon = " & request.form("strPhone")& ", shipAdresse = '"& request.form("strShipAdresse") & "' WHERE orderID = " & intOrderID  ' SQL sætning der insætter en ny række i db

response.write sql ' skriver i db

' Sender brugeren til næste side når databasen er opdateret
Conn.Execute(SQL)
response.redirect("checkout2B.asp?orderID =" & intOrderID)

conn.Close 'luk db
Set conn = nothing
Set SQL = nothing
%>
</body>
</html>
::::SLUT::::

/Annette
Avatar billede busschou Praktikant
29. april 2005 - 11:00 #10
godt det virker :o)
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