Nån som kan se syntaxfelet i SQL1 = "INSERT INTO tblUsers_skrivklada_checkRostning where userID=" & request("userID")
Syntaxfel
16 svar · 500 visningar · startad av WebbisNet
Du borde använda update i det fallet, eftersom du vill uppdatera en rad som redan finns. Insert används bara när man vill lägga till nya rader. Dessutom borde du ange vilka kolumner som ska uppdateras, och vilka värden de ska uppdateras med.
Hittar inte ett enda rätt ;)
Vad vill du göra egentligen?
Antingen vill du uppdatera ett värde där userID = ditt_ID
eller vill du sätta in ett nytt värde userID?
' skapar ny post
INSERT INTO tbl (col1, col2) VALUES('value1', numericvalue2)
' uppdaterar
UPDATE tbl SET col1 = 'värde', col2 = numVärde WHERE userID = ditt_ID
var visst inte riktigt klar med frågan, jag har en updatesats för rösningen, men med koden vill jag även spara data i en annan tabell så att ingen kan rösta 2 gånger på samma, och i den här måste jag ha insert för att få en lista på ALLA som har röstat
jag har nu
SQL = "update tblUsers_skrivklada set rostvarde=rostvarde+"& varRoster &", antal=antal+1 where userID=" & request("userID")
SQL1 = "INSERT INTO tblUsers_skrivklada_checkRostning"
SQL1 = SQL1 & "(userID,IP,From) "
SQL1 = SQL1 & "VALUES('"& varUserID &"','"& IP &"','"& varFrom &"')"
Där har du närmat dig en fungerande lösning. Men tänk efter nu vilka datatyper du har. Är verkligen userID ett strängvärde? Det förefaller mig mer sannolikt att det är ett heltal. Då ska du inte ha apostrofer runt värdet.
det är fortfarande syntaxfel
Och hur ser din sql-sats ut?
SQL1 = "INSERT INTO tblUsers_skrivklada_checkRostning"
SQL1 = SQL1 & "(userID,IP,From) "
SQL1 = SQL1 & "VALUES("& varUserID &",'"& IP &"',"& varFrom &")"
SQL = "update tblUsers_skrivklada set rostvarde=rostvarde+"& varRoster &", antal=antal+1 where userID=" & request("userID")
Det ser ju riktigt ut, förutsatt att kolumnen "From" är numerisk. Har du någon form av kommandorad där du kan köra sql-satserna, och få databashanteraren att tala om var syntaxfelet är? I Oracle finns tex Sql+, som jag ofta har använt mig av för att undersöka syntaxfel. Även MySQL har jag för mig ska gå att köra från kommandoraden.
Nu ser jag något som jag är osäker på om det beror på skärmen eller något annat. Eventuellt saknar du ett mellanslag i insert-satsen. Frågan är om du har ett mellanslag här: SQL1 = SQL1 & "(userID,IP,From) "
eller om det står SQL1 = SQL1 & " (userID,IP,From) "
Det är den andra varianten som är rätt. Med den första varianten får du följande sql-sats:
INSERT INTO tblUsers_skrivklada_checkRostning(userID,IP,From) VALUES(varUserID,'IP',varFrom)
Då har du fått fel tabellnamn.
SQL1 = SQL1 & " (userID,IP,From) " gör ingen skillnad och jag kör med access som databas
Vid utskrift får jag
INSERT INTO INSERT INTO tblUsers_skrivklada_checkRostning (userID,IP,From) VALUES(15,'10.9.0.2',1)update tblUsers_skrivklada set rostvarde=rostvarde+5, antal=antal+1 where userID=15
, här ser allt rätt ut, men ändå får jag syntaxfel när jag ska köra SQL1
Du måste dela upp dina sql-satser och dessutom får du självklart inte skriva INSERT INTO två ggr efter varandra.
Ungefär såhär vore mer rätt
SQL = "INSERT INTO tblUsers_skrivklada_checkRostning (userID,IP,From) VALUES(15,'10.9.0.2',1)"
conn.execute SQL
SQL = "update tblUsers_skrivklada set rostvarde=rostvarde+5, antal=antal+1 where userID=15"
conn.execute SQL
2 insert into var vara skrivfel eftersom jag inte hade det, och
SQL1 = "INSERT INTO tblUsers_skrivklada_checkRostning"
SQL1 = SQL1 & " (userID,IP,From) "
SQL1 = SQL1 & "VALUES("& varUserID &",'"& IP &"',"& varFrom &")"
response.write SQL1
objConn.Execute(SQL1)
SQL = "update tblUsers_skrivklada set rostvarde=rostvarde+"& varRoster &", antal=antal+1 where userID=" & request("userID")
response.write SQL
objConn.Execute(SQL)
fungerar ändå inte,samma syntaxfel
Exakt vad är felmeddelandet du får?
Ta bort mellanslaget mellan tabellnamnet och ( så att det blir: "...INTO tblUsers_skrivklada_checkRostning(userID..."
Kan ett tabellnamn vara så långt?
Kan det vara så att databasen blir förvirrad av fältnamnet FROM?
Testa att sätta [] runt det.
Hjälpte inte det heller
yohpops skrev:
Kan det vara så att databasen blir förvirrad av fältnamnet FROM?
Testa att sätta [] runt det.
Så är det. Man skall inte överhuvudtaget använda reserverade ord som tabell- eller fältnamn. Byt namn på fältet.
Skriv ut hur SQL-frågan ser ut nu, samt aktuellt felmeddelande.