X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fdbase_pgsql.phh;h=f4202c6b6b1dd882482729d02db814ce908e6e9a;hb=fba998349f6e71d4305a933f0725a1cb1b7e24cc;hp=f7cb1a94e60f4ee37cb3616270972a0231846306;hpb=66f94441ec85a5555c7280aff03ba7e5d661c364;p=brisk.git diff --git a/web/Obj/dbase_pgsql.phh b/web/Obj/dbase_pgsql.phh index f7cb1a9..f4202c6 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) { @@ -138,7 +138,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) @@ -709,6 +709,7 @@ class BriskDB /* * matches management */ + $codes_where = ""; $mtc_sql = sprintf("UPDATE %sbin5_matches SET (mazzo_next, mult_next) = (%d, %d) WHERE ttok = '%s' RETURNING *;", $G_dbpfx, $table->mazzo, $table->mult, $sql_ttok); if (($mtc_pg = $this->query($mtc_sql)) == FALSE || pg_numrows($mtc_pg) != 1) { @@ -729,12 +730,34 @@ class BriskDB log_crit(sprintf("bin5_points_save: failed at insert table order [%s]", $ord_sql)); break; } + $codes_where .= sprintf("%scode = %d", ($i == 0 ? "" : " OR "), $ucodes[$i]); } if ($i < $n) break; + + $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; + } } else { $mtc_obj = pg_fetch_object($mtc_pg,0); + + 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; + } } /* @@ -832,6 +855,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