---
title: "Syntax error in INSERT INTO statement."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/133236-syntax-error-in-insert-into-statement"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "DanneSt"
published: "2005-08-24T11:46:10.000Z"
updated: "2005-12-11T18:00:44.000Z"
replies: 18
views: 692
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/133236-syntax-error-in-insert-into-statement"
---

# Syntax error in INSERT INTO statement.

## #1 — DanneSt, 2005-08-24T11:46Z

Hej!
Jag är relativt ny på ASP-kodning, har mest klippt och klistrat från färdiga gratisscript. Nu håller jag på med mitt första försök till eget script.

Jag får ett felmeddelande:
Syntax error in INSERT INTO statement.

, som pekar mot den sista raden i koden;

```
sql = "INSERT INTO Prod, Intressant (ProdNamn, ProdBesk, IntNamn, IntKontakt) VALUES('" & Request.Form("ProdNamn") & ", " & Request.Form("ProdBesk") & " , " & Request.Form("IntNamn") & " , " & Request.Form("IntKontakt") & "')"
		
Conn.Execute(sql)
```

 

Vad gör jag för fel?
Går det inte att stoppa in data i två tabeller samtidigt?
Försöker jag skriva ut innehållet i 'sql' precis innan Conn.Execute(sql) så skriver den bara ut bokstäverna s, q, & l...
Har jag ingen data med mig?

Tacksam för hjälp!

Permalänk: https://www.webforum.nu/p/133236

## #2 — Peter S, 2005-08-24T11:48Z

Hej och välkommen till wF!

Det saknas en apostrof:

```
'" & Request.Form("ProdNamn") & "[b]'[/b] <---
```

Red./ Samt en för mycket:

```
" & Request.Form("IntKontakt") & "' <---
```

Permalänk: https://www.webforum.nu/p/1662381

## #3 — @nders, 2005-08-24T11:52Z

1) Nej, stoppa in data i en tabell i taget.
2) För att skriva ut SQL-frågan, ska du inte ha citationstecken runt *sql*.

Permalänk: https://www.webforum.nu/p/1662383

## #4 — DanneSt, 2005-08-24T11:52Z

Hmm, varför ska det vara apostrofer runt första värdet, och inte de övriga?
Nåja, testar...

Nop, funkar inte.

Permalänk: https://www.webforum.nu/p/1662384

## #5 — Peter S, 2005-08-24T11:55Z

Du skall inte ha apostrofer kring exempelvis tal. Däremot skall du ha dem runt strängar. Läs dessutom Anders punkter.

Permalänk: https://www.webforum.nu/p/1662386

## #6 — DanneSt, 2005-08-24T11:59Z

Ok, då förstår jag apostrofregeln!

Får inte till det ändå.
Har gjort som @nders sa (tror jag!);

```
sql1 = "INSERT INTO Prod (ProdNamn, ProdBesk) VALUES('" & Request.Form("ProdNamn") & ", " & Request.Form("ProdBesk") & "')"
Conn.Execute(sql1)
Conn.close
	
sql2 = "INSERT INTO Intressant (IntNamn, IntKontakt) VALUES('" & Request.Form("IntNamn") & " , " & Request.Form("IntKontakt") & "')"
Conn.Execute(sql2)
Conn.close
```

Tack förresten för välkomnandet!  :-)

Permalänk: https://www.webforum.nu/p/1662388

## #7 — @nders, 2005-08-24T12:02Z

Vad är det som inte fungerar nu då? :)
Felmeddelande?

Ett fel kan vara att du stänger conn-objektet innan du är klar med det. Gör inte det. ;)

mvh

Permalänk: https://www.webforum.nu/p/1662390

## #8 — Peter S, 2005-08-24T12:05Z

Apostroferna är fortfarande intet riktigt placerade:

```
Conn.Execute("INSERT INTO Prod (ProdNamn, ProdBesk) VALUES('" & Request.Form("ProdNamn") & "', '" & Request.Form("ProdBesk") & "'")
	
Conn.Execute("INSERT INTO Intressant (IntNamn, IntKontakt) VALUES(" & Request.Form("IntNamn") & " , " & Request.Form("IntKontakt"))
Conn.close
```

Och innan Erik Juhlin läser detta vill jag tipsa dig om att söka på *SQL-injection* här på wF  ;)

Permalänk: https://www.webforum.nu/p/1662391

## #9 — DanneSt, 2005-08-24T12:10Z

Oj, glömde felet:

> Microsoft JET Database Engine error '80040e14' 
> 
> Number of query values and destination fields are not the same.

 

Provade att skriva ut värden innan Execute och de stämmer;

> INSERT INTO Prod (ProdNamn, ProdBesk) VALUES('cykel, blabla')INSERT INTO Person (IntNamn, IntKontakt) VALUES('danne , 123456')

 

Ska apostroferna alltså sitta runt VARJE värde, inte bara inom parantesen?

Permalänk: https://www.webforum.nu/p/1662392

## #10 — LarsG, 2005-08-24T12:13Z

> Ska apostroferna alltså sitta runt VARJE värde, inte bara inom parantesen?

Just det.

Permalänk: https://www.webforum.nu/p/1662393

## #11 — DanneSt, 2005-08-24T12:17Z

Nu funkar det!!  
Tusen tack PeterS & @nders för Er hjälp!

:-D

 :birp

Och tack till dig också, Lars!  :-)

Permalänk: https://www.webforum.nu/p/1662395

## #12 — Peter S, 2005-08-24T12:20Z

:bire 

Kanon!

Permalänk: https://www.webforum.nu/p/1662397

## #13 — @nders, 2005-08-24T12:22Z

:bire

Permalänk: https://www.webforum.nu/p/1662399

## #14 — DanneSt, 2005-12-11T14:52Z

Ännu ett syntax error

Har återigen ett problem med detta. Får samma syntas error som tidigare (Syntax error in INSERT INTO statement.).

```
Conn.Execute("INSERT INTO fastigheter (namn,info,yta,hyra,kommentar,ledig) VALUES ('" & Request.Form("namn") & "','" & Request.Form("info") & "','" & Request.Form("yta") & "','" & Request.Form("hyra") & "','" & Request.Form("kommentar") & "','" & Request.Form("ledig") & "'")
```

Tycker mig ha fått dit alla apostrofer och snuffar på rätt ställe...
Vad gör jag för fel denna gång?

Permalänk: https://www.webforum.nu/p/1727430

## #15 — @nders, 2005-12-11T16:58Z

Regel ett när man har problem med SQL-frågor: skriv ut den färdiga SQL-frågan. Att se hur en fråga ser ut innan den har några värden är ointressant.

```
strSQL = "INSERT INTO blablabla..."
Response.write strSQL
```

Permalänk: https://www.webforum.nu/p/1727472

## #16 — DanneSt, 2005-12-11T17:16Z

Hmm, är inte riktigt säker på vad du menar med "färdig SQL-fråga".
(Är novis på ASP, men en riktigt newbie på SQL!!!)

Har struntat i det första försöket och lyckades lösa mitt problem så här:

```
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From fastigheter"
Recset.Open Addera, Conn, 3, 3

RecSet.AddNew

RecSet("namn") = Request.Form("namn")
RecSet("info") = Request.Form("info")
RecSet("yta") = Request.Form("yta")
RecSet("hyra") = Request.Form("hyra")
RecSet("kommentar") = Request.Form("kommentar")
RecSet("ledig") = Request.Form("ledig")

RecSet.Update
RecSet.Close

Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From bilder"
Recset.Open Addera, Conn, 3, 3

RecSet.AddNew

RecSet("lgh") = Request.Form("namn")

RecSet.Update
RecSet.Close
Conn.Close
```

(Var det detta de menade med en "färdig SQL-fråga? Och då är väl denna fråga ställd i fel forum också??)    :l

Permalänk: https://www.webforum.nu/p/1727481

## #17 — @nders, 2005-12-11T17:20Z

Den färdiga SQL-frågan är den som skickas till databasen, dvs efter det att alla asp-strängar är tolkade.

Titta [några inlägg upp](http://www.webforum.nu/showthread.php?p=1081222#post1081222), så ser du vad du tidigare gjort.

Permalänk: https://www.webforum.nu/p/1727484

## #18 — DanneSt, 2005-12-11T17:38Z

Ok, ska kolla igenom det senare (just nu snurrar det bara...)    :r 

Hoppar därför till en annan fråga:
Vid ett tillfälle lägger jag upp en ny post (lägenhet).
Vid ett annat tillfälle lägger jag till en bild till den lägenheten.
I tabellen har jag då en kolumn som är tom om ingen bild finns, annars ifylld med bildens namn om det finns en bild.

Koden är skriven skriven så att den fyller på (AddNew) med en ny rad med lägenhetsnamnet och bildnamnet. Problemet jag är att jag då får en rad (den första) där bildnamnet är tomt. 

Hur skriver jag en vettig kod för att få den att uppdatera den rad som inte har något bildnamn när jag laddar upp den första bilden, och att sen göra som vanligt?

Permalänk: https://www.webforum.nu/p/1727494

## #19 — @nders, 2005-12-11T18:00Z

Kontrollera om det finns en post där bild är tomt. (är tomt tom sträng eller null förresten?) Om så, gör update, annars, gör insert.

```
strSQL = "SELECT 1 FROM tabell WHERE lägenhet = 'blablabla' AND bildfält=''"
set objRS = objConn.execute (strSQL)
if not objRS.EOF then
    strSQL = "UPDATE tabell SET bildfält = 'blabla.jpg' WHERE lägenhet='blabla'"
else
    strSQL = "INSERT INTO tabell...."
end if
' exekvera sql-fråga...
```

typ, alltså.

Permalänk: https://www.webforum.nu/p/1727510

---

Tråden på webben: https://www.webforum.nu/amne/asp/133236-syntax-error-in-insert-into-statement
