diff --git a/db/db_mysql.C b/db/db_mysql.C index aa589f1886..477cd5423f 100644 --- a/db/db_mysql.C +++ b/db/db_mysql.C @@ -622,7 +622,7 @@ int db_user_count(int& n) { int db_user_count_team(TEAM& p, int& n) { char buf[256]; - sprintf(buf, "teamid=%d", p.id); + sprintf(buf, "where teamid=%d", p.id); return boinc_db.db_count(&n, "*", TYPE_USER, buf); } @@ -660,14 +660,14 @@ int db_user_enum_teamid(USER& p) { int db_user_sum_team_expavg_credit(TEAM& p, double& n) { char buf[256]; - sprintf(buf, "teamid=%d", p.id); + sprintf(buf, "where teamid=%d", p.id); return boinc_db.db_sum(&n, "expavg_credit", TYPE_USER, buf); } int db_user_sum_team_total_credit(TEAM& p, double& n) { char buf[256]; - sprintf(buf, "teamid=%d", p.id); + sprintf(buf, "where teamid=%d", p.id); return boinc_db.db_sum(&n, "total_credit", TYPE_USER, buf); } diff --git a/db/mysql_util.C b/db/mysql_util.C index 19a413919d..3b8d88ba7d 100644 --- a/db/mysql_util.C +++ b/db/mysql_util.C @@ -92,7 +92,9 @@ int MYSQL_DB::db_new(void* vp, int type) { } int MYSQL_DB::db_insert_id() { - mysql_query(mp, "select LAST_INSERT_ID()"); + int retval; + retval = mysql_query(mp, "select LAST_INSERT_ID()"); + if (retval) return mysql_errno(mp); rp = mysql_store_result(mp); row = mysql_fetch_row(rp); return atoi(row[0]); @@ -107,10 +109,12 @@ int MYSQL_DB::db_delete(int id, int type) { int MYSQL_DB::db_lookup_id(int i, void* vp, int type) { char buf[MAX_QUERY_LEN]; + int retval; sprintf(buf, "select * from %s where id=%d", table_name[type], i); - mysql_query(mp, buf); + retval = mysql_query(mp, buf); + if (retval) return mysql_errno(mp); rp = mysql_store_result(mp); - if (!rp) return -1; + if (!rp) return mysql_errno(mp); row = mysql_fetch_row(rp); if (row) row_to_struct(row, vp, type); mysql_free_result(rp); @@ -119,10 +123,12 @@ int MYSQL_DB::db_lookup_id(int i, void* vp, int type) { int MYSQL_DB::db_lookup(void* vp, int type, char* clause) { char buf[MAX_QUERY_LEN]; + int retval; sprintf(buf, "select * from %s where %s", table_name[type], clause); - mysql_query(mp, buf); + retval = mysql_query(mp, buf); + if (retval) return mysql_errno(mp); rp = mysql_store_result(mp); - if (!rp) return -1; + if (!rp) return mysql_errno(mp); row = mysql_fetch_row(rp); if (row) row_to_struct(row, vp, type); mysql_free_result(rp); @@ -142,6 +148,7 @@ int MYSQL_DB::db_update(void* vp, int type) { int MYSQL_DB::db_enum(ENUM& e, void* p, int type, char* clause, int limit) { char buf[MAX_QUERY_LEN], buf2[256]; + int retval; if (!e.active) { e.active = 1; sprintf(buf, "select * from %s %s", table_name[type], clause?clause:""); @@ -149,9 +156,10 @@ int MYSQL_DB::db_enum(ENUM& e, void* p, int type, char* clause, int limit) { sprintf(buf2, " limit %d", limit); strcat(buf, buf2); } - mysql_query(mp, buf); + retval = mysql_query(mp, buf); + if (retval) return mysql_errno(mp); e.rp = mysql_store_result(mp); - if (!e.rp) return -1; + if (!e.rp) return mysql_errno(mp); } row = mysql_fetch_row(e.rp); if (!row) { @@ -166,12 +174,14 @@ int MYSQL_DB::db_enum(ENUM& e, void* p, int type, char* clause, int limit) { int MYSQL_DB::db_enum_field(ENUM& e, int type, char* field, char* clause) { char buf[MAX_QUERY_LEN]; + int retval; if (!e.active) { e.active = 1; sprintf(buf, "select %s from %s %s", field, table_name[type], clause); - mysql_query(mp, buf); + retval = mysql_query(mp, buf); + if (retval) return mysql_errno(mp); e.rp = mysql_store_result(mp); - if (!e.rp) return -1; + if (!e.rp) return mysql_errno(mp); } row = mysql_fetch_row(e.rp); if (!row) { @@ -184,22 +194,26 @@ int MYSQL_DB::db_enum_field(ENUM& e, int type, char* field, char* clause) { } int MYSQL_DB::db_query_int(int* ip, char* query) { - mysql_query(mp, query); + int retval; + retval = mysql_query(mp, query); + if (retval) return mysql_errno(mp); rp = mysql_store_result(mp); - if (!rp) return -1; + if (!rp) return mysql_errno(mp); row = mysql_fetch_row(rp); - if (!row) return -1; + if (!row || !row[0]) return mysql_errno(mp); *ip = atoi(row[0]); mysql_free_result(rp); return 0; } int MYSQL_DB::db_query_double(double* dp, char* query) { - mysql_query(mp, query); + int retval; + retval = mysql_query(mp, query); + if (retval) return mysql_errno(mp); rp = mysql_store_result(mp); - if (!rp) return -1; + if (!rp) return mysql_errno(mp); row = mysql_fetch_row(rp); - if (!row) return -1; + if (!row || !row[0]) return mysql_errno(mp); *dp = atof(row[0]); mysql_free_result(rp); return 0;