webForumDet fria alternativet

Använda LIKE %?% i Prepared statment

ASP

5 svar · 370 visningar · startad av pg

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

Hej

Jag undrar hur man bäst kan använda ADODB.Command Prepared statment då användaren skickar en sökning från ett formulär till en databas, i detta fallet MySQL.

Med ADODB.Connection brukar det vara lätt att använda t.ex
" WHERE sName LIKE '%" & sSearchString & "%' "
" OR sAddress LIKE '%" & sSearchString & "%' "
Men detta är väl inte lämpligt med tanke på risken för SQL-injection. Jag vill heller inte filtrera sSearchString.

Så därför testade jag ett Prepared statment ...
" WHERE sName LIKE %?% "
" OR sAddress LIKE %?% "
....
Com.Parameters.Append Com.CreateParameter("Data1", 129, 1, 255, sSearchString)
Com.Parameters.Append Com.CreateParameter("Data2", 129, 1, 255, sSearchString)
Men det godkänns inte som syntax

Har också provat ...
" WHERE INSTR(CONCAT(sName, sAddress), ?) > 0 "
Men detta ger mig huvudbry eftersom det inte ger svar på vissa frågor som man vet finns i DB.

Detta verkar funka men ger jobbigt mycket kod om man ska kolla många kolumner...
" WHERE INSTR(sMemberNr, ?) > 0 "
" OR INSTR(sName, ?) > 0 "

Så jag undrar hur ni brukar göra?
Tackar för alla synpunkter och tips

Ha det /PG

Medlem sedan dec. 19996 721 inlägg
#2
WHERE sName LIKE '%' + ? + '%'
Medlem sedan feb. 200235 inlägg
#3

Hoppsan, ja det var ju lätt. Men tyvärr får jag det inte att funka. Nu får jag i stället db att lista alla poster. Men jag får labba mer med detta när jag får tid över.
/PG

Medlem sedan dec. 200012 464 inlägg
#4

Eftersom det är mysql så

WHERE sName LIKE concat('%',?,'%' )
Medlem sedan maj 200010 687 inlägg
#5

Detta borde väl också funka..?

Com.Parameters.Append Com.CreateParameter("Data1", 129, 1, 255, "%" & sSearchString & "%")
Medlem sedan feb. 200235 inlägg
#6

Ja det funkar med bägge alternativen. Tack för hjälpen. /PG

264 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)