webForumDet fria alternativet

Wildcards funkar inte

7 svar · 493 visningar · startad av His Divine Shadow

His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#1

Har en relativt enkel kod som inte funkar.

location = request("Location")

SQL = "SELECT * from Kat WHERE Location = '"& Location &"'"

När man i ett formulär väljer att location ska vara precis alla så har jag gjort så att dess värde i formuläret blir % men det funkar inte, ingenting alls blir valt då, vad ska jag använda? Kör med en access databas och öppnar den med denna kod, kan den vara fel?

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=C:\data\WebData\Spakundregister.mdb;"
@ndersMedlem sedan juni 200032 969 inlägg
#2

Du kan inte använda wildcards med =, utan du ska då använda LIKE.

GlitterMedlem sedan juli 2003465 inlägg
#3

red / försent svar

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#4

Dessutom kan det vara en idé att hindra SQL-injections genom att replacea "'" med "''".

His Divine ShadowMedlem sedan sep. 20004 079 inlägg
#5

JAg antar att LIKE funkar lika bra som = ?

Engine^Medlem sedan dec. 20003 887 inlägg
#6

LIKE och = ? hör inte ihop alls.

= ? används för att göra en parameteriserad fråga mot Accessdatabaser (och andra dbms möjligen).

select * from tabell where kolumn = ?
@ndersMedlem sedan juni 200032 969 inlägg
#7

Engine^, jag tror frågan kan ställas så här:
"Fungerar LIKE lika bra som att använda likhetstecken?"

Engine^Medlem sedan dec. 20003 887 inlägg
#8

@nders skrev:

Engine^, jag tror frågan kan ställas så här:
"Fungerar LIKE lika bra som att använda likhetstecken?"

Ok. Då är svaret ja, men med LIKE kan du även använda wildcards. Dock ska LIKE undvikas om inte wildcards behövs...

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