webForumDet fria alternativet

Problem med update

4 svar · 290 visningar · startad av SoMeOnE

SoMeOnEMedlem sedan nov. 200254 inlägg
#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?

@ndersMedlem sedan juni 200032 969 inlägg
#2

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

SoMeOnEMedlem 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.

@ndersMedlem sedan juni 200032 969 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.

SoMeOnEMedlem 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.

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)