Butikskorg fel

ASP

3 svar · 224 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Trådstart#1

Vad är fel i följande kod

' Lägg till i korg
IF produktID <> "" THEN
  sqlString = "SELECT korg_id FROM korg " &_
    "WHERE korg_userID=" & userID & " " &_
    "AND korg_produktID=" & produktID & " " &_
    "AND korg_alternativ1=" & alternativ1 & " " &_
    "AND korg_alternativ2=" & alternativ2
  SET RS = Con.Execute( sqlString )
  IF RS.EOF THEN
  sqlString = "INSERT INTO korg ( " &_
    "korg_userID, " &_
    "korg_alternativ1" &_
    "korg_alternativ2" &_
    "korg_produktID, " &_
    "korg_antal " &_
     ") VALUES ( " &_
    userID & ", " &_
    " '" & fixQuotes( alternativ1 ) & "' " &_
    " '" & fixQuotes( alternativ2 ) & "' " &_
    produktID & ", 1 )"
  ELSE
  sqlString = "UPDATE korg SET " &_
    "korg_antal=korg_antal+1 " &_
    "WHERE korg_id=" & RS( "korg_id" ) 
  END IF
  RS.Close
  SET RS = Nothing
  Con.Execute sqlString
END IF
Medlem sedan dec. 200012 464 inlägg
#2

Det saknas kommatecken efter alternativ1 och alternativ2 i ditt insert-statement. Både i kolumnlistan och values-delen.

I select-satsen är det inga apostrofer kring sökvärdet för alternativ1 och alternativ2, däremot i insert så är värdena omgivna av apostrofer. Vad har dessa kolumner för datatyp?

Medlem sedan jan. 20013 406 inlägg
#3

Datatypen är text på en MS SQL-server

Medlem sedan dec. 200012 464 inlägg
#4
' Lägg till i korg
IF produktID <> "" THEN
sqlString = "SELECT korg_id FROM korg " &_
"WHERE korg_userID=" & userID & " " &_
"AND korg_produktID=" & produktID & " " &_
"AND korg_alternativ1='" & alternativ1 & "' " &_
"AND korg_alternativ2='" & alternativ2 & "'"
SET RS = Con.Execute( sqlString )
IF RS.EOF THEN
sqlString = "INSERT INTO korg ( " &_
"korg_userID, " &_
"korg_alternativ1, " &_
"korg_alternativ2, " &_
"korg_produktID, " &_
"korg_antal " &_
") VALUES ( " &_
userID & ", " &_
" '" & fixQuotes( alternativ1 ) & "', " &_
" '" & fixQuotes( alternativ2 ) & "', " &_
produktID & ", 1 )"
ELSE
sqlString = "UPDATE korg SET " &_
"korg_antal=korg_antal+1 " &_
"WHERE korg_id=" & RS( "korg_id" ) 
END IF
RS.Close
SET RS = Nothing
Con.Execute sqlString
END IF

Jag lade till några komman och apostrofer. Det verkar onödigt att använda text, varchar borde räcka då en sådan kolumn kan innehålla upp till 8000 tecken.

393 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
121 ms — hämta statistik (db)
145 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)