N n1kke Medlem sedan aug. 2006 34 inlägg Frågan 9 aug. 2006 13:11 #1 hur gör man när man vill ändra i en viss kolum där det redan finns något
pres = Request.Form("pres")
conn.execute("Update panda set pres=pres where alias ='" & Session("user") & "'")
till exempel
det funkade ej=) så hur gör man
CatZ Medlem sedan jan. 2002 2 440 inlägg pres = Request.Form("pres")
Conn.execute("Update panda set pres='" & pres & "' where alias ='" & Session("user") & "'")
Är det ett numeriskt värde så tar du bort enkelfnuttarna ' och har barra " & pres & "
pres = Request.Form("pres")
Conn.execute("Update panda set pres= " & pres & " where alias = " & Session("user") & "")
@nders Medlem sedan juni 2000 32 967 inlägg Du konkatenerar ju redan in värdet från sessionsvariabeln, så det är bara att konkatenera in det andra också.
conn.execute("Update panda set pres='" & pres & "' where alias ='" & Session("user") & "'")
Glöm inte bort att säkra din kod för SQL-injections.
N n1kke Medlem sedan aug. 2006 34 inlägg nej det är inte ett numeriskt värde det är text
CatZ Medlem sedan jan. 2002 2 440 inlägg SQL språket använder ' för att ange att det är text som ska sättas in
insert into tblTable(col1, col2) Values('text', 123)
Så om du har en variabel som du vill slänga in som ska passa in mot datatypen text så måste du berätta detta för SQL frågan
variabel1 = "text"
variabel2 = 345364
objConn.Execute(insert into tblTable(col1, col2) values(' " & variabel1 & " ', " & variabel2 & " "))
" använder du för att växla mellan kod och sträng/text läge och & använder du för att binda ihop strängar.
N n1kke Medlem sedan aug. 2006 34 inlägg fick rätt på det men @nders hur hindrar man SQL-injection
@nders Medlem sedan juni 2000 32 967 inlägg Det viktigaste är att man ser ut att ta om hand alla apostrofer i inmatade värden. Exempel:
pres = Replace(Request.Form("pres"), "'", "''")
Detta förändrar inte vad som sparas i databasen, men "escapear" strängavgränsaren '. Det innebär att man inte kan medvetet förstöra i databasen genom att mata in det tecknet, men det innebär också att man faktiskt kan lagra det i ett fält.
n1kke skrev:
fick rätt på det men @nders hur hindrar man SQL-injection
Sök på ämnet i det här forumet, finns mängder med trådar ;)