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
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.
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.
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..
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.
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