---
title: "INSERT fel!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/67207-insert-fel"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Jacek"
published: "2003-02-05T07:35:28.000Z"
updated: "2003-02-05T18:17:54.000Z"
replies: 16
views: 446
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/67207-insert-fel"
---

# INSERT fel!

## #1 — Jacek, 2003-02-05T07:35Z

Hej, ar ingen hojdare pa ASP problemlosning sa min sista utvag e detta forumet.

Jag far inte mitt News Insert script att funka. Samma script har funkat nar jag anvande mig av \*.mdb databas men har nu bytt till MySQL pga nytt webhotell.

Foljande kod:

```
If Request.QueryString("status") = "add" Then

	Title = Request.Form("Title")
	User = Session("MemberId")
	Datum = Request.Form("Date")

	Text = request.form("Text")
	Text = REPLACE(Text, chr(10), "<br>")

	SQLStmt = "INSERT INTO News "
	SQLStmt = SQLStmt & "(Title, Text, User, Date) "
	SQLStmt = SQLStmt & "VALUES('" & Title & "', '" & Text & "', '" & User & "', '" & Datum & "'); "
	objConn.Execute(SQLStmt),,128   *** LINE 22 ***
	objConn.Close
		
	Response.Redirect "news.asp"

End If
```

Detta fel uppstar:

ADODB.Connection.1 error '80004005' 

SQLState: 42000
Native Error Code: 1064
\[TCX\]\[MyODBC\]You have an error in your SQL syntax near '; ' at line 1

/site/amn/news.asp, line 22

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

## #2 — Macce, 2003-02-05T07:43Z

Ta bort ; -tecknet på rad 21

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

## #3 — @nders, 2003-02-05T07:45Z

För det första; avslutar man SQL-frågor i MySQL med semikolon? Du behöver det i alla fall inte. 
För det andra: fältnamnet *Text* kan vara reserverat, och så även *Date*. De är i alla fall reserverade i ANSI-SQL. Byt namn på de fälten.
För det tredje: Skriv ut den färdiga SQL-frågan istället för execute. Det är mer intressant än att se den koden som skapar den felaktiga SQL-frågan.

mvh

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

## #4 — Palle, 2003-02-05T09:54Z

> **@nders skrev:**
>
> För det andra: fältnamnet *Text* kan vara reserverat, och så även *Date*. De är i alla fall reserverade i ANSI-SQL. Byt namn på de fälten.

\*Verifierar\*

I MS Access är *Text* och *Date* reserverade ord.
[En komplett lista finns här](http://www.frontpagehowto.com/reserved.htm)

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

## #5 — m_soderlund, 2003-02-05T10:11Z

Man kan även skriva \[Text\] i stället för *Text* samt \[Date\] i stället för *Date*, det går bra. (Fast @nders gillar inte det.. ;))

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

## #6 — @nders, 2003-02-05T10:41Z

Jag tror inte man kan klamra när det gäller MySQL, och man borde inte kunna göra det överhuvudtaget. Att använda reserverade ord som fältnamn är en styggelse. ;)

Mvh,

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

## #7 — m_soderlund, 2003-02-05T10:43Z

> **@nders skrev:**
>
> Jag tror inte man kan klamra när det gäller MySQL, och man borde inte kunna göra det överhuvudtaget. Att använda reserverade ord som fältnamn är en styggelse. ;)
> Mvh,

Jo, det är nog det.. Mankan ju alltid köra med t_Name, t_Date etc. som fältnamn. t skulle kunna stå för table till exempel.. ;)

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

## #8 — LarsG, 2003-02-05T10:45Z

Text är inte ett reserverat ord i ANSI. Det finns ingen datatyp som heter text, den riktiga benämningen är CLOB eller CHARACTER LARGE OBJECT.

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

## #9 — @nders, 2003-02-05T10:48Z

> **MySQL.com skrev:**
>
> The following symbols (from the table above) are disallowed by ANSI SQL but allowed by MySQL as column/table names. This is because some of these names are very natural names and a lot of people have already used them. 
> 
> ACTION 
> BIT 
> DATE 
> ENUM 
> NO 
> TEXT 
> TIME 
> TIMESTAMP

Jag vet inte riktigt vad det betyder, men min tolkning är att TEXT tillåts i MySQL men inte i ANSI SQL. Det spelar mindre roll egentligen, men det är alltid bra att veta vad som gäller. :bire

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

## #10 — Engine^, 2003-02-05T10:50Z

\[*Reserverat Ord*\] är Stygian Notation ;)

Lista på [Reserved Words](http://www.mysql.com/doc/en/Reserved_words.html) i MySQL.

Jag chansar på att det är Date som jäklas för dig så kolla lite [här](http://www.mysql.com/doc/en/DATETIME.html).

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

## #11 — LarsG, 2003-02-05T14:20Z

Flyttad från ASP

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

## #12 — Jacek, 2003-02-05T17:44Z

Här kommer hela koden!

\<%

Set objConn = Server.CreateObject("ADODB.Connection") 
objConn.Open "Driver={MySQL};SERVER=localhost;"+ "DB=xxx;PORT=3306;UID=xxx;PWD=xxx;"

Set RsNews = objConn.Execute("SELECT \* FROM News Order by Datum desc")

' ########## ADD NEWS #########

If Request.QueryString("status") = "add" Then

	Title = Request.Form("Title")
	User = Session("MemberId")
	Datum = Request.Form("Datum")

	News = request.form("News")
	News = REPLACE(News, chr(10), "\<br\>")

	SQLStmt = "INSERT INTO News "
	SQLStmt = SQLStmt & "(Title, News, User, Datum) "
	SQLStmt = SQLStmt & "VALUES('" & Title & "', '" & News & "', '" & User & "', '" & Datum & "'); "
	objConn.Execute(SQLStmt),,128
	objConn.Close
		
	Response.Redirect "news.asp"

End If

' #################################

%\>

Jag ändrade DATE och TEXT men får fortfarande samma fel. =(

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

## #13 — @nders, 2003-02-05T17:52Z

> **@nders skrev:**
>
> För det tredje: Skriv ut den färdiga SQL-frågan istället för execute. Det är mer intressant än att se den koden som skapar den felaktiga SQL-frågan.

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

## #14 — Jacek, 2003-02-05T17:57Z

Jag är säkert trög när det gäller sådant, men jag skulle tippa att du menar hela sidan, eller menar du något från databasen. Första gången jag använder mig av MySQL därför jag e lite trög =D

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

## #15 — @nders, 2003-02-05T18:00Z

Det har inget med MySQL att göra, utan vanlig felsökningsprincip när man pillar SQL-frågor som inte fungerar. 

```
SQLStmt = "INSERT INTO News " 
SQLStmt = SQLStmt & "(Title, News, User, Datum) " 
SQLStmt = SQLStmt & "VALUES('" & Title & "', '" & News & "', '" & User & "', '" & Datum & "'); " 
[b]Response.write "<b>SQLStmt: </b>" & SQLStmt
'objConn.Execute(SQLStmt),,128[/b]
```

Mvh,

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

## #16 — Jacek, 2003-02-05T18:14Z

Ok.. Löste problemet i alla fall..

Tog bort ; som var på en annan rad, och inte den raden Erroret peka på..

Från:
& Datum & "'); "

Till:
& Datum & "') "

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

## #17 — @nders, 2003-02-05T18:17Z

När det är fel på en SQL-fråga pekar felmeddelandet alltid på den raden där SQL-frågan exekveras.

For future reference: Det kan vara bra att lyssna på Macce. :P

Mvh

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/67207-insert-fel
