webForumDet fria alternativet

Syntaxfel???

ASPur ASP

23 svar · 471 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Har denna SQL-sats:

SQL = "SELECT * From forum where id = "&Request.QueryString("id")&" AND lock = 'yes'"

Får detta felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers error '80040e09' 

[TCX][MyODBC]You have an error in your SQL syntax near 'lock = 'yes'' at line 1 

/forum.asp, line 3450

Vad kan det vara för fel?

Är mot en MySQL-databas.

Medlem sedan dec. 19992 085 inlägg
#2

Ska det inte vara true? eller yes utan ' runt sig.

Medlem sedan feb. 20011 498 inlägg
#3

Ordet yes har bara jag hittat på och kolumnen lock är av typen varchar(50) och då ska man ha '

Medlem sedan dec. 19992 085 inlägg
#4

Aha.. trodde det var nåt mysql argument typ.. men men.. gör lite mellanrum vid & tecknen. Vet inte om det behövs men testa.

Medlem sedan feb. 20011 498 inlägg
#5

Hade redan testat det men det funkar inte.

Medlem sedan dec. 200012 464 inlägg
#6

lock är ett reserverat ord i Mysql.

Medlem sedan feb. 20011 498 inlägg
#7

I access kan man ju då skriva [] runt kolumnnamnet, finns det något annat sätt i mysql för [] funkar inte?

Medlem sedan dec. 200012 464 inlägg
#8

"lock"

`lock`

Jag har för mig att jag har sett båda dessa metoder i deras dokumentation. Det första sättet är enligt ANSI-standard.

Medlem sedan juni 200032 967 inlägg
#9

Allra bäst är att byta kolumnnamn.

Medlem sedan feb. 20011 498 inlägg
#10

Vet ni vart det finns en lista på reserverade ord till mysql?

Medlem sedan dec. 200012 464 inlägg
Medlem sedan feb. 20011 498 inlägg
#12

Såg att jag inte har några reserverade ord i denn SQL-sträng:

SQL = "Insert Into forum(datum, skribent, meddelande, "subject", typ, rum, hemsida, skribent_id, datum2, id_svar, senasteinlagg) Values('"&Day(Date()) & " " & MonthName(Month(Date())) & " kl " & right("0" & Hour(Time()),2) & ":" & right("0" & Minute(Time()),2)&"', '"&session("username")&"', '"&Request.Form("text")&"', '"Svar:" & Request.QueryString("subject")&"', 'svar', '"&Request.QueryString("rum")&"', '"&session("hemsida")&"', "&session("id")&", '"&Now&"', "&Request.QueryString("id")&", '"&Now&"')"

Men jag får ändå

Microsoft OLE DB Provider for ODBC Drivers error '80040e09' 

[TCX][MyODBC]You have an error in your SQL syntax near 'Final Fantasy 7, 'svar', 'allmant', 'http://www.ampy.net', 1, '2002-06-17 18:44:' at line 1 

/forum.asp, line 3863

Vad kan vara felet i SQL-strängen?

Medlem sedan dec. 19995 875 inlägg
#13

Du skriver

'"Svar" &
Prova med
'Svar" &

Medlem sedan juni 200032 967 inlägg
#14

Jag tycker dessutom att VBScript-tolken borde reagera på att du har citationstecken i strängen som inte är escape:ade.

... meddelande, [b]""subject""[/b], typ ...

Sen är det alltid lättare att se felen om du skriver ut den färdiga SQL-frågan.

Var kommer Final Fantasy 7 ifrån? Det är ju helt klart en sträng, och skall således ha apostrofer runt sig.

Mvh,

Medlem sedan feb. 20011 498 inlägg
#15

Inget av det jag testade funkade:

        SQL = "Insert Into forum(datum, skribent, meddelande, subject, typ, rum, hemsida, skribent_id, datum2, id_svar, senasteinlagg) Values('"&Day(Date()) & " " & MonthName(Month(Date())) & " kl " & right("0" & Hour(Time()),2) & ":" & right("0" & Minute(Time()),2)&"', '"&session("username")&"', '"&Request.Form("text")&"', 'Svar" & Request.QueryString("subject")&"', 'svar', '"&Request.QueryString("rum")&"', '"&session("hemsida")&"', "&session("id")&", '"&Now&"', "&Request.QueryString("id")&", '"&Now&"')"
	
	
	Connect.Execute(SQL)

Sen går det inte att skriva ut SQL-strängen för att jag får felmeddelandet på den och inte på denna rad:

Connect.Execute(SQL)

Medlem sedan dec. 19995 875 inlägg
#16

Jag ser inget fel direkt, men precis som @nders säger så är det lättare med den färdiga sqlfrågan :)

Vad får du för felmeddelande om du gör:

SQL= "insert into..."
response.write SQL
Medlem sedan juni 200032 967 inlägg
#17

Det senaste felmeddelandet du postade kan du inte ha fått på den raden. Vilket felmeddelande får du här?

Jag kan inte direkt se att du missat något citationstecken eller så.

Medlem sedan feb. 20011 498 inlägg
#18

Då får jag

Microsoft OLE DB Provider for ODBC Drivers error '80040e09' 

[TCX][MyODBC]You have an error in your SQL syntax near 'Final Fantasy 7, 'svar', 'allmant', 'http://www.ampy.net', 1, '2002-06-17 19:15:' at line 1 

/forum.asp, line 3863

Den hinner alltså inte skriva ut SQL-strängen för att jag får felmeddelandet först. Men som ni kanske ser så fattas det ett ' efter Final Fantasy 7

Medlem sedan dec. 19995 875 inlägg
#19

replace(svar, "'", "''")
kanske :q

Vad vet jag? Det är omöjligt att säga.

Hur som helst. Vad är det du försöker mata in? Har du hela strängen?

Medlem sedan juni 200032 967 inlägg
#20

Då tycker jag att du ska kontrollera radnummer. Du kan inte få det felmeddelandet om du inte gör execute. Är det rätt SQL-sats du postat? Jag tror inte det.

Mvh,

135 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)