webForumDet fria alternativet

SQL problem

12 svar · 1 706 visningar · startad av n1kke

n1kkeMedlem sedan aug. 200634 inlägg
#1

<%
If Request.QueryString("doit") = "gbadd" Then

gbAlias = Session("user")
gbAliasId = Session("id")
gbMess = Request.Form("gbMess")
gbId = Request.QueryString("id")
gbDate = FormatDateTime(Now,2)
If len(gbMess)\> 0 Then

	Conn.execute("Insert into panda_gb (gbAlias,gbAliasId,gbMess,gbId,gbDate) Values('" & gbAlias & "','" & gbAliasId & "','" & gbMess & "','" & gbId & "','" & gbDate & "')")
	response.redirect "default.asp"
else
	response.write "\<script\> alert('fel fel fel'); \</script\>"
End if

End if
%>

					\<% if Session("user") = "" THEN
					Response.Redirect("default.asp")
					else %\>
					\<form method="post" action="gb.asp?doit=gbadd"\>
					  \<textarea name="gbMess"\>\</textarea\>
                      \<br\>
                      \<input name="submit2" type="submit" class="submit style14" value=" Skicka "\>
					\</form\>
					\<% 

					sql = "select \* from panda_gb where gbId=" & request.QueryString("id")
					Set rs = conn.execute(SQL)
					while not rs.eof
						Response.write Rs("gbAlias") & Rs("gbAliasId") & "\<br\>" & Rs("gbMess") & "\<br\>\<br\>"
						rs.movenext
					wend
					Rs.Close

end if
%>

får fel på rad 32 vilket är

Set rs = conn.execute(SQL)

LarsGMedlem sedan dec. 200012 465 inlägg
#2

använd [ kod ] [ /kod ] (utan blanka) runt koden

indentera koden

ange vilket felmeddelande du får

ConnyFoxMedlem sedan aug. 20011 201 inlägg
#3

testa
sql = "select * from panda_gb where gbId="' & request.QueryString("id") & "'"

CatZMedlem sedan jan. 20022 341 inlägg
#4

ConnyFox skrev:

testa
sql = "select * from panda_gb where gbId="' & request.QueryString("id") & "'"

Det är inte lösningen eftersom det med största säkerhet är ett tal som är id ska det vara = " & request.QueryString("id").

Det LarsG menar är att det ska se ut såhär när du postar din fråga

<%
If Request.QueryString("doit") = "gbadd" Then

	gbAlias = Session("user")
	gbAliasId = Session("id")
	gbMess = Request.Form("gbMess")
	gbId = Request.QueryString("id")
	gbDate = FormatDateTime(Now,2)
	
	If len(gbMess)> 0 Then
		Conn.execute("Insert into panda_gb (gbAlias,gbAliasId,gbMess,gbId,gbDate) " _
		& "Values('" & gbAlias & "','" & gbAliasId & "','" & gbMess & "','" & gbId & "','" & gbDate & "')")
		
		response.redirect "default.asp"
	else
		response.write "<script> alert('fel fel fel'); </script>"
	End if
End if

if Session("user") = "" THEN
	Response.Redirect("default.asp")
else 
%>
	<form method="post" action="gb.asp?doit=gbadd">
		<textarea name="gbMess"></textarea>
			<br>
		<input name="submit2" type="submit" class="submit style14" value=" Skicka ">
	</form>	
<%
	sql = "select * from panda_gb where gbId=" & request.QueryString("id") & " "
	Set rs = conn.execute(SQL)
	
	while not rs.eof
		Response.write Rs("gbAlias") & Rs("gbAliasId") & "<br>" & Rs("gbMess") & "<br><br>"
	rs.movenext
	wend
	
	Rs.Close
end if
%>

Skriv som sagt vad du får för felmeddelande och testa skriva ut din fråga eller ställa den i din databas hanterare.

Response.Write(sql)

doggelitoMedlem sedan juni 20003 100 inlägg
#5
sql = "select * from panda_gb where gbId=" & request.QueryString("id") & " "
Set rs = conn.execute(SQL)

Är conn skapat? det syns inte i din kod.

(ett tips till: fuska inte med stora och små bokstäver som ovan då du först anger sql och sedan SQL) :)

n1kkeMedlem sedan aug. 200634 inlägg
#6

har conn via connect.asp som inkluderas på varje sida så det är därför den inte står med

DenkanMedlem sedan juni 2002261 inlägg
#7
sql = "select * from panda_gb where gbId=" & CInt(request.QueryString("id"))

?

Fredde MannenMedlem sedan nov. 20013 498 inlägg
#8

Du skall nog också kolla så att request.QueryString("id") innehåller ett värde som är numeriskt. Så det inte blir en massa tjafs när annat sätts in i urlen.

TroxyMedlem sedan mars 20041 508 inlägg
#9

doggelito skrev:

sql = "select * from panda_gb where gbId=" & request.QueryString("id") & " "

Varför lägger du till en sträng med ett mellanrum på slutet? ;)

Som sagt, kontrollera först att id är ett nummer med hjälp av funktionen isNumeric.
Sedan kan du typkonvertera med hjälp av cInt om du vill, men det behövs egentligen inte.
Men det blir nog ännu lättare om du postar ditt felmeddelande istället! :i

n1kkeMedlem sedan aug. 200634 inlägg
#10

sql = "select * from panda_gb where gbId=" & request.QueryString("id") står det iofs

n1kkeMedlem sedan aug. 200634 inlägg
#11

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/preview/gb.asp, line 31

rad 31
Set rs = conn.execute(SQL)

TroxyMedlem sedan mars 20041 508 inlägg
#12

Gör en utskrift av strängen sql och posta resultatet här.

response.write sql
response.end
DenkanMedlem sedan juni 2002261 inlägg
#13

När skapar du Conn-objektet? Har du den i en annan fil, så kontrollera att du har inkluderat den i dokumentet.

Genererad på 376 ms · cache AV · v20260730165559-full.f96bc7eb