webForumDet fria alternativet

Felmeddelande.

ASP

7 svar · 671 visningar · startad av Akerlundh

Medlem sedan maj 20031 682 inlägg
Frågan#1
   if request.QueryString("NewsID") = request.QueryString("NewsID") then
   Addera = "SELECT * FROM nyheter where id = "&request.QueryString("NewsID")

Där får jag felet

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'id ='.
nyheter.asp, line 45

Jag vet att jag inte har något värde i id men det ska ju bara användas ifall set blir t ex, nyheter.asp?NewsID=78

Förstår ni.
Jätte dålig på att förklara sådant här.

Medlem sedan nov. 20014 054 inlägg
#2
if request.QueryString("NewsID") = request.QueryString("NewsID") then
   Addera = "SELECT * FROM nyheter where id = "&request.QueryString("NewsID")

Om NewsID är lika med NewsID så hoppar den och kör selectsatsen.

Ungefär om A = A Så kör detta..

Borde kanske vara: Om A inte är tomt och är numeriskt (dvs om id skall vara det) då kör vi satsen..

Så kanske något istil med

 If IsNumeric(Request.QueryString("NewsID")) Then
' bvlablabla
Medlem sedan sep. 2006867 inlägg
#3

Du måste kolla om request.QueryString("NewsID") har fått ett värde och endast då skicka iväg en SQL-fråga.

Din ifsats kommer alltid vara TRUE utom möjligen om dom råkar få värdet null, som det är skrivet så frågar du om 78 möjligen är samma sak som 78. En annan gång kanske du frågar om '' = '', dvs om en tom sträng har samma innehåll som en tom sträng, vilket den har.

Du kanske istället skall fråga

if not isempty(request.QueryString("NewsID")) then
Addera = "SELECT * FROM nyheter where id = "&request.QueryString("NewsID")
end if
Medlem sedan sep. 2006867 inlägg
#4

isnumeric är bättre, men kanske till och med en anti-SQL-injection-funktion vore bra här?! :p

Medlem sedan juni 200032 967 inlägg
#5

headbug skrev:

isnumeric är bättre, men kanske till och med en anti-SQL-injection-funktion vore bra här?! :p

Absolut. Man ska ta för vana att alltid skydda sig.

Medlem sedan maj 20031 682 inlägg
#6

headbug skrev:

isnumeric är bättre, men kanske till och med en anti-SQL-injection-funktion vore bra här?! :p

anti-SQL-injection-funktion? :OO

Medlem sedan mars 20041 505 inlägg
#7

Akerlundh skrev:

Addera = ...

Är det bara jag, eller luktar det gammal skön ASP-kurs från IDG? :birp
(Ursäkta offtopic :P )

Medlem sedan maj 20031 682 inlägg
#8

Troxy skrev:

Är det bara jag, eller luktar det gammal skön ASP-kurs från IDG? :birp
(Ursäkta offtopic :P )

Nej..
Har inte hållt på med ASP på flera år, så tog och letade upp lite gamla script som jag gjort för flera år sedan. :birp

274 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)