X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fdbase_pgsql.phh;h=7cd0c4bc0ee237e5cab8607b095b30adcb38d24e;hb=79db26bc13a3eed3104658c4ce5b174557275909;hp=6299f81e206db418708697ef6aa1a8880c157ab1;hpb=035bbc47bddfd26c5506d8b684c9fe3da79fc136;p=brisk.git diff --git a/web/Obj/dbase_pgsql.phh b/web/Obj/dbase_pgsql.phh index 6299f81..7cd0c4b 100644 --- a/web/Obj/dbase_pgsql.phh +++ b/web/Obj/dbase_pgsql.phh @@ -25,7 +25,7 @@ require_once("${G_base}Obj/dbase_base.phh"); $escsql_from = array( "\\", "'" ); -$escsql_to = array( "\\\\", "\\'" ); +$escsql_to = array( "\\\\", "''" ); function escsql($s) { @@ -62,8 +62,9 @@ class DBConn static function destroy() { if (DBConn::$dbcnnx != FALSE) { + $ret = pg_close(DBConn::$dbcnnx); DBConn::$dbcnnx = FALSE; - return (pg_close(DBConn::$dbcnnx)); + return ($ret); } return TRUE; } @@ -112,11 +113,13 @@ class BriskDB function query($sql) { - if (($res = pg_query($this->dbconn->db(), $sql)) == FALSE) { + if (($res = @pg_query($this->dbconn->db(), $sql)) == FALSE) { + error_log('pg_result_status: ' . pg_result_status($res)); + error_log('pg_connection_status: ' . pg_connection_status($this->dbconn->db())); // try to recover the connection if (($this->dbconn = DBConn::recover()) == FALSE) return FALSE; - return (pg_query($this->dbconn->db(), $sql)); + return (@pg_query($this->dbconn->db(), $sql)); } return ($res); @@ -138,7 +141,7 @@ class BriskDB /* check the existence of the nick in the BriskDB */ log_main("login_exists: ".$login); - $user_sql = sprintf("SELECT * FROM %susers WHERE login = lower('%s')", + $user_sql = sprintf("SELECT * FROM %susers WHERE login = '%s'", $G_dbpfx, escsql($login)); if (($user_pg = $this->query($user_sql)) != FALSE) if (pg_numrows($user_pg) == 1) @@ -735,34 +738,28 @@ class BriskDB if ($i < $n) break; - // FIXME: uncomment when counters are updated - if (0 == 1) { - $cnt_sql = sprintf("UPDATE %susers SET (match_cnt, game_cnt) + $cnt_sql = sprintf("UPDATE %susers SET (match_cnt, game_cnt) = (match_cnt+1, game_cnt+1) WHERE %s;", - $G_dbpfx, $codes_where); - error_log($cnt_sql); - if (($cnt_pg = $this->query($cnt_sql)) == FALSE || pg_affected_rows($cnt_pg) != $n) { - log_crit(sprintf("bin5_points_save: failed increment match and game [%s]", $cnt_sql)); - break; - } + $G_dbpfx, $codes_where); + error_log($cnt_sql); + if (($cnt_pg = $this->query($cnt_sql)) == FALSE || pg_affected_rows($cnt_pg) != $n) { + log_crit(sprintf("bin5_points_save: failed increment match and game [%s]", $cnt_sql)); + break; } } else { $mtc_obj = pg_fetch_object($mtc_pg,0); - // FIXME: uncomment when counters are updated - if (0 == 1) { - for ($i = 0 ; $i < $n ; $i++) { - $codes_where .= sprintf("%scode = %d", ($i == 0 ? "" : " OR "), $ucodes[$i]); - } - $cnt_sql = sprintf("UPDATE %susers SET (game_cnt) + for ($i = 0 ; $i < $n ; $i++) { + $codes_where .= sprintf("%scode = %d", ($i == 0 ? "" : " OR "), $ucodes[$i]); + } + $cnt_sql = sprintf("UPDATE %susers SET (game_cnt) = (game_cnt+1) WHERE %s;", - $G_dbpfx, $codes_where); - error_log($cnt_sql); - if (($cnt_pg = $this->query($cnt_sql)) == FALSE || pg_affected_rows($cnt_pg) != $n) { - log_crit(sprintf("bin5_points_save: failed increment game [%s]", $cnt_sql)); - break; - } + $G_dbpfx, $codes_where); + error_log($cnt_sql); + if (($cnt_pg = $this->query($cnt_sql)) == FALSE || pg_affected_rows($cnt_pg) != $n) { + log_crit(sprintf("bin5_points_save: failed increment game [%s]", $cnt_sql)); + break; } } @@ -861,6 +858,28 @@ INSERT INTO %smails (code, ucode, type, tstamp, subj, body_txt, body_htm, hash) return (TRUE); } + function usersnet_bycode($owner, $target) + { + GLOBAL $G_dbpfx; + $ret = FALSE; + + $net_sql = sprintf("SELECT * FROM %susersnet WHERE owner = %d AND target = %d;", + $G_dbpfx, $owner, $target); + if (($net_pg = $this->query($net_sql)) == FALSE) { + return FALSE; + } + if (pg_numrows($net_pg) != 1) + return FALSE; + + $net_obj = pg_fetch_object($net_pg, 0); + + return (UsersNetItem::UsersNetItemFromRecord($net_obj)); + } + + function usersnet_default($owner, $target) + { + return (UsersNetItem::UsersNetItemDefaults($owner, $target)); + } } // End class BriskDB