---
title: "Syntaxfel"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/105008-syntaxfel"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "WebbisNet"
published: "2004-06-05T10:40:54.000Z"
updated: "2004-06-05T19:41:59.000Z"
replies: 16
views: 537
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/databaser-sql/105008-syntaxfel"
---

# Syntaxfel

## #1 — WebbisNet, 2004-06-05T10:40Z

Nån som kan se syntaxfelet i SQL1 = "INSERT INTO tblUsers_skrivklada_checkRostning where userID=" & request("userID")

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

## #2 — UlfT, 2004-06-05T10:51Z

Du borde använda update i det fallet, eftersom du vill uppdatera en rad som redan finns. Insert används bara när man vill lägga till nya rader. Dessutom borde du ange vilka kolumner som ska uppdateras, och vilka värden de ska uppdateras med.

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

## #3 — cyprys, 2004-06-05T10:53Z

Hittar inte ett enda rätt ;) 
Vad vill du göra egentligen?
Antingen vill du uppdatera ett värde där userID = ditt_ID
eller vill du sätta in ett nytt värde userID?

```
' skapar ny post
INSERT INTO tbl (col1, col2) VALUES('value1', numericvalue2)

' uppdaterar
UPDATE tbl SET col1 = 'värde', col2 = numVärde WHERE userID = ditt_ID
```

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

## #4 — WebbisNet, 2004-06-05T10:58Z

var visst inte riktigt klar med frågan, jag har en updatesats för rösningen, men med koden vill jag även spara data i en annan tabell så att ingen kan rösta 2 gånger på samma, och i den här måste jag ha insert för att få en lista på ALLA som har röstat

jag har nu 

```
SQL = "update tblUsers_skrivklada set rostvarde=rostvarde+"& varRoster &", antal=antal+1 where userID=" & request("userID")

	SQL1 = "INSERT INTO tblUsers_skrivklada_checkRostning"
	SQL1 = SQL1 & "(userID,IP,From) "
	SQL1 = SQL1 & "VALUES('"& varUserID &"','"& IP &"','"& varFrom &"')"
```

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

## #5 — UlfT, 2004-06-05T11:27Z

Där har du närmat dig en fungerande lösning. Men tänk efter nu vilka datatyper du har. Är verkligen userID ett strängvärde? Det förefaller mig mer sannolikt att det är ett heltal. Då ska du inte ha apostrofer runt värdet.

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

## #6 — WebbisNet, 2004-06-05T16:34Z

det är fortfarande syntaxfel

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

## #7 — UlfT, 2004-06-05T16:38Z

Och hur ser din sql-sats ut?

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

## #8 — WebbisNet, 2004-06-05T16:43Z

```
SQL1 = "INSERT INTO tblUsers_skrivklada_checkRostning"
	SQL1 = SQL1 & "(userID,IP,From) "
	SQL1 = SQL1 & "VALUES("& varUserID &",'"& IP &"',"& varFrom &")"
	
	SQL = "update tblUsers_skrivklada set rostvarde=rostvarde+"& varRoster &", antal=antal+1 where userID=" & request("userID")
```

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

## #9 — UlfT, 2004-06-05T17:02Z

Det ser ju riktigt ut, förutsatt att kolumnen *"From"* är numerisk. Har du någon form av kommandorad där du kan köra sql-satserna, och få databashanteraren att tala om var syntaxfelet är? I Oracle finns tex Sql+, som jag ofta har använt mig av för att undersöka syntaxfel. Även MySQL har jag för mig ska gå att köra från kommandoraden.

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

## #10 — UlfT, 2004-06-05T17:07Z

Nu ser jag något som jag är osäker på om det beror på skärmen eller något annat. Eventuellt saknar du ett mellanslag i insert-satsen. Frågan är om du har ett mellanslag här: *SQL1 = SQL1 & "(userID,IP,From) "*
eller om det står *SQL1 = SQL1 & " (userID,IP,From) "*
Det är den andra varianten som är rätt. Med den första varianten får du följande sql-sats:

```
INSERT INTO tblUsers_skrivklada_checkRostning(userID,IP,From) VALUES(varUserID,'IP',varFrom)
```

Då har du fått fel tabellnamn.

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

## #11 — WebbisNet, 2004-06-05T17:12Z

SQL1 = SQL1 & " (userID,IP,From) " gör ingen skillnad och jag kör med access som databas

Vid utskrift får jag 

```
INSERT INTO INSERT INTO tblUsers_skrivklada_checkRostning (userID,IP,From) VALUES(15,'10.9.0.2',1)update tblUsers_skrivklada set rostvarde=rostvarde+5, antal=antal+1 where userID=15
```

 , här ser allt rätt ut, men ändå får jag syntaxfel när jag ska köra SQL1

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

## #12 — cyprys, 2004-06-05T17:31Z

Du måste dela upp dina sql-satser och dessutom får du självklart inte skriva INSERT INTO två ggr efter varandra.

Ungefär såhär vore mer rätt

```
SQL = "INSERT INTO tblUsers_skrivklada_checkRostning (userID,IP,From) VALUES(15,'10.9.0.2',1)"
conn.execute SQL

SQL = "update tblUsers_skrivklada set rostvarde=rostvarde+5, antal=antal+1 where userID=15"
conn.execute SQL
```

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

## #13 — WebbisNet, 2004-06-05T17:36Z

2 insert into var vara skrivfel eftersom jag inte hade det, och 

```
SQL1 = "INSERT INTO tblUsers_skrivklada_checkRostning"
	SQL1 = SQL1 & " (userID,IP,From) "
	SQL1 = SQL1 & "VALUES("& varUserID &",'"& IP &"',"& varFrom &")"
	response.write SQL1
	objConn.Execute(SQL1)
	
	SQL = "update tblUsers_skrivklada set rostvarde=rostvarde+"& varRoster &", antal=antal+1 where userID=" & request("userID")
	response.write SQL
	objConn.Execute(SQL)
```

fungerar ändå inte,samma syntaxfel

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

## #14 — PDahlen, 2004-06-05T18:51Z

Exakt vad är felmeddelandet du får?

Ta bort mellanslaget mellan tabellnamnet och ( så att det blir: "...INTO tblUsers_skrivklada_checkRostning(userID..."

Kan ett tabellnamn vara så långt?

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

## #15 — yohpops, 2004-06-05T19:02Z

Kan det vara så att databasen blir förvirrad av fältnamnet FROM?
Testa att sätta \[\] runt det.

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

## #16 — WebbisNet, 2004-06-05T19:23Z

Hjälpte inte det heller

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

## #17 — @nders, 2004-06-05T19:41Z

> **yohpops skrev:**
>
> Kan det vara så att databasen blir förvirrad av fältnamnet FROM?
> Testa att sätta \[\] runt det.

Så är det. Man skall inte överhuvudtaget använda reserverade ord som tabell- eller fältnamn. Byt namn på fältet.

Skriv ut hur SQL-frågan ser ut nu, samt aktuellt felmeddelande.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/105008-syntaxfel
