webForumDet fria alternativet

Wildcards funkar inte

Databaser & SQL

7 svar · 493 visningar · startad av His Divine Shadow

Medlem sedan sep. 20004 079 inlägg
Frågan#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;"
Medlem sedan juni 200032 967 inlägg
#2

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

Medlem sedan juli 2003465 inlägg
#3

red / försent svar

Medlem sedan maj 200010 687 inlägg
#4

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

Medlem sedan sep. 20004 079 inlägg
#5

JAg antar att LIKE funkar lika bra som = ?

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 = ?
Medlem sedan juni 200032 967 inlägg
#7

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

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

263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)