webForumDet fria alternativet
Logga in / Bli medlem

Problem med update

ASP

4 svar · 290 visningar · startad av SoMeOnE

Medlem sedan nov. 200254 inlägg
Trådstart#1

Fick lite problem med att se ifall ett sql-kommando uppdarade eller inte.
Det här är en bit av mysql-klassen jag har kodat ihop och använder:

MySQL.prototype.query = function(sql){
	try{
		return this.rs = this.conn.execute(sql, this.affectedRows);
	} catch(e) {
		if(this.debug){
			Response.write("<b>An error has occured in the following sql query:</b><br>");
			Response.write(sql+"<br>");
			Response.write("<b>The error is:</b><br>");
			Response.write(e.description);
			Response.End();
		} else {
			Response.write("<b>An error have occured in the database.</b><br>");
			Response.End();
		}
	}
}

MySQL.prototype.getAffectedRows = function(){
	return this.affectedRows;
}

borde inte det fungera med följande:

	 	mysql_connection.query("UPDATE Referers SET Count = Count + 1 WHERE Referer = '"+ref+"' LIMIT 1");
	 	if(mysql_connection.getAffectedRows()==0){
			mysql_connection.query("INSERT INTO Referers (Referer, Count) VALUES ('"+ref+"', '1')");
		}

men jag får bara ut undefined eller 0 på getAffectedRows(). Vad kan vara fel, jag vet att den uppdaterar en rad i datbasen?

Medlem sedan juni 200032 967 inlägg
#2

COUNT är ett reserverat ord i SQL. Byt namn på fältet.
Får du verkligen inget felmeddelande?

Medlem sedan nov. 200254 inlägg
#3

Nepp, inga felmeddelanden. Har även testat att skriva ut variablen direkt inne i funktionen så att jaginte ska ha stavat fel någonstans men då blir den bara undefined. Kan det påverka att man kör något av följande:
MySQL
ChilliASP (SUN ASP)
har inte så mycket erfarenhet av asp och har inte riktigt koll på det här.

EDIT: glömde att säga att det inte fungerar bättre efter att jag bytte namn på kolumnen.

Medlem sedan juni 200032 967 inlägg
#4

Istället för ditt try/catch-block, testa att köra SQL-frågan rakt av, och se om du får något felmeddelande.

Skriv även ut hela SQL-frågan med Response.Write() för att kontrollera att variabler innehåller det du tror.

Medlem sedan nov. 200254 inlägg
#5

Kan testa det men som jag sa så fungerar sql-kommandot, problemet är att den den inte returnerar hur många rader som är påverkade. Vill bara veta ifall den lyckades uppdatera raden eller inte, ifall jag inte får det här att fungera så får jag väl andvända en select-sats och sedan utrifrån det se ifall raden finns eller inte.

274 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
145 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)