Sitter och funderar på hur min SQL-sträng ska skrivas men jag kommer ingenstans. Tror det är såhär du menar: Tack så mycket. Känner mig nästan dum som frågade om en så enkel sql-sats. Irrade bort mig totalt när jag satt och knåpade :) Hej, vänligen bryt inte tråden och diskutera något annat än det som avses. För att hantera sql-injection ersätter du ' med '' innan du skickar in datat via ditt sql-kommando. Pelle,SQL-sträng
(Använder ASP och mySQL.)
Jag kommer till en sida via ett formulär och får därifrån Request.Form("strID")
Jag har två tabeller.
tblSp:
spID, spNamn, spVo, spCat
tblCmSp:
cmID, cmSpID, cmStrID
Jag ska sedan söka i tabell tblSp och få ut.
tblSp.spID, tblSp.spNamn, tblSp.spVo, tblSp.spCat
Och nu till det jag inte får till,
Jag vill hämta dessa poster ovan där tblSp.spID=tblCmSp.cmSpID
OCH ENDAST där tblCmStrID=Request.Form("strID")
Förstår någon vad jag menar, virrar in mig i ett hörn med mig själv när jag försäker skriva SQL-strängen.
Tack på förhand.Sv: SQL-sträng
SQL = "SELECT tblSp.spID, tblSp.spNamn, tblSp.spVo, tblSp.spCat FROM tblSp, tblCmSp WHERE tblSp.spID=tblCmSp.cmSpID AND tblCmSp.cmStrId = " & Request.Form("strID")
För att förhindra SQL-injection behöver du kontrollera indatat, ett enkelt sätt är att göra såhär, men då genereras bara ett fel när fel data matas in:
SQL = "SELECT tblSp.spID, tblSp.spNamn, tblSp.spVo, tblSp.spCat FROM tblSp, tblCmSp WHERE tblSp.spID=tblCmSp.cmSpID AND tblCmSp.cmStrId = " & CInt(Request.Form("strID"))
/JohanSv:SQL-sträng
Liet off-topic men hur brukar ni hantera sql-injection. Vilka olika kontroller har ni och hur hanterar ni felen som kan dyka upp. Alltså vilka felhanterare använder ni i ASP:n?Sv: SQL-sträng
Sv:SQL-sträng
När det handlar om <b>MySql</b> så är det \ som är motsvarigheten till ' i tex. Access och MSSQL.
Oftast ersätter man <b>\</b> med två <b>\\</b>
/m