From 9a3e0cd3c6a65501f0cdebbc864f195325f0a362 Mon Sep 17 00:00:00 2001 From: "Paul S. Owen" Date: Tue, 1 Jan 2002 14:35:33 +0000 Subject: [PATCH] Fix for bug #497093 + other updates git-svn-id: file:///svn/phpbb/trunk@1764 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/db/postgres7.php | 283 +++++++++++++++++------------------------ 1 file changed, 115 insertions(+), 168 deletions(-) diff --git a/phpBB/db/postgres7.php b/phpBB/db/postgres7.php index 41d055a556..f0f1821d1f 100644 --- a/phpBB/db/postgres7.php +++ b/phpBB/db/postgres7.php @@ -37,68 +37,55 @@ class sql_db // // Constructor // - function sql_db($sqlserver, $sqluser, $sqlpassword, $database, $persistency=true) + function sql_db($sqlserver, $sqluser, $sqlpassword, $database, $persistency = true) { - $this->connect_string = ""; - if($sqluser) + + if( $sqluser ) { $this->connect_string .= "user=$sqluser "; } - if($sqlpassword) + + if( $sqlpassword ) { $this->connect_string .= "password=$sqlpassword "; } - if($sqlserver) + + if( $sqlserver ) { - if(ereg(":",$sqlserver)) + if( ereg(":", $sqlserver) ) { - list($sqlserver,$sqlport) = split(":",$sqlserver); + list($sqlserver, $sqlport) = split(":", $sqlserver); $this->connect_string .= "host=$sqlserver port=$sqlport "; } else { - if($sqlserver != "localhost") + if( $sqlserver != "localhost" ) { $this->connect_string .= "host=$sqlserver "; } } } - if($database) + + if( $database ) { $this->dbname = $database; - $make_connect = $this->connect_string . "dbname=$database"; - } - else - { - $make_connect = $this->connect_string; + $this->connect_string .= "dbname=$database"; } $this->persistency = $persistency; - if($this->persistency) - { - $this->db_connect_id = @pg_pconnect($make_connect); - } - else - { - $this->db_connect_id = @pg_connect($make_connect); - } - if($this->db_connect_id) - { - return $this->db_connect_id; - } - else - { - return false; - } + $this->db_connect_id = ( $this->persistency ) ? pg_pconnect($this->connect_string) : pg_connect($this->connect_string); + + return ( $this->db_connect_id ) ? $this->db_connect_id : false; } + // // Other base methods // function sql_close() { - if($this->db_connect_id) + if( $this->db_connect_id ) { // // Commit any remaining transactions @@ -108,12 +95,12 @@ class sql_db @pg_exec($this->db_connect_id, "COMMIT"); } - if($this->query_result) + if( $this->query_result ) { @pg_freeresult($this->query_result); } - $result = @pg_close($this->db_connect_id); - return $result; + + return @pg_close($this->db_connect_id); } else { @@ -125,20 +112,22 @@ class sql_db // // Query method // - function sql_query($query = "", $transaction = FALSE) + function sql_query($query = "", $transaction = false) { + // // Remove any pre-existing queries + // unset($this->query_result); - if($query != "") + if( $query != "" ) { $this->num_queries++; $query = preg_replace("/LIMIT ([0-9]+),([ 0-9]+)/", "LIMIT \\2, \\1", $query); - if($transaction == BEGIN_TRANSACTION) + if( $transaction == BEGIN_TRANSACTION ) { $result = @pg_exec($this->db_connect_id, "BEGIN"); - if(!$result) + if( !$result ) { return false; } @@ -146,12 +135,12 @@ class sql_db } $this->query_result = @pg_exec($this->db_connect_id, $query); - if($this->query_result) + if( $this->query_result ) { - if($transaction == END_TRANSACTION) + if( $transaction == END_TRANSACTION ) { $result = @pg_exec($this->db_connect_id, "COMMIT"); - if(!$result) + if( !$result ) { @pg_exec($this->db_connect_id, "ROLLBACK"); return false; @@ -169,7 +158,7 @@ class sql_db } else { - if($this->in_transaction) + if( $this->in_transaction ) { @pg_exec($this->db_connect_id, "ROLLBACK"); } @@ -180,10 +169,10 @@ class sql_db } else { - if($transaction == END_TRANSACTION) + if( $transaction == END_TRANSACTION ) { $result = @pg_exec($this->db_connect_id, "COMMIT"); - if(!$result) + if( !$result ) { @pg_exec($this->db_connect_id, "ROLLBACK"); return false; @@ -194,179 +183,143 @@ class sql_db return false; } } + // // Other query methods // function sql_numrows($query_id = 0) { - if(!$query_id) + if( !$query_id ) { $query_id = $this->query_result; } - if($query_id) - { - $result = @pg_numrows($query_id); - return $result; - } - else - { - return false; - } - } - function sql_affectedrows($query_id = 0) - { - if(!$query_id) - { - $query_id = $this->query_result; - } - if($query_id) - { - $result = @pg_cmdtuples($query_id); - return $result; - } - else - { - return false; - } + + return ( $query_id ) ? @pg_numrows($query_id) : false; } + function sql_numfields($query_id = 0) { - if(!$query_id) + if( !$query_id ) { $query_id = $this->query_result; } - if($query_id) - { - $result = @pg_numfields($query_id); - return $result; - } - else - { - return false; - } + + return ( $query_id ) ? @pg_numfields($query_id) : false; } + function sql_fieldname($offset, $query_id = 0) { - if(!$query_id) + if( !$query_id ) { $query_id = $this->query_result; } - if($query_id) - { - $result = @pg_fieldname($query_id, $offset); - return $result; - } - else - { - return false; - } + + return ( $query_id ) ? @pg_fieldname($query_id, $offset) : false; } + function sql_fieldtype($offset, $query_id = 0) { - if(!$query_id) + if( !$query_id ) { $query_id = $this->query_result; } - if($query_id) - { - $result = @pg_fieldtype($query_id, $offset); - return $result; - } - else - { - return false; - } + + return ( $query_id ) ? @pg_fieldtype($query_id, $offset) : false; } + function sql_fetchrow($query_id = 0) { - if(!$query_id) + if( !$query_id ) { $query_id = $this->query_result; } + if($query_id) { $this->row = @pg_fetch_array($query_id, $this->rownum[$query_id]); - if($this->row) + + if( $this->row ) { $this->rownum[$query_id]++; return $this->row; } - else - { - return false; - } - } - else - { - return false; } + + return false; } + function sql_fetchrowset($query_id = 0) { - if(!$query_id) + if( !$query_id ) { $query_id = $this->query_result; } - if($query_id) + + if( $query_id ) { unset($this->rowset[$query_id]); unset($this->row[$query_id]); $this->rownum[$query_id] = 0; - while($this->rowset = @pg_fetch_array($query_id, $this->rownum[$query_id], PGSQL_ASSOC)) + while( $this->rowset = @pg_fetch_array($query_id, $this->rownum[$query_id], PGSQL_ASSOC) ) { $result[] = $this->rowset; $this->rownum[$query_id]++; } + return $result; } - else - { - return false; - } + + return false; } + function sql_fetchfield($field, $row_offset=-1, $query_id = 0) { - if(!$query_id) + if( !$query_id ) { $query_id = $this->query_result; } - if($query_id) + + if( $query_id ) { - if($row_offset != -1) + if( $row_offset != -1 ) { $this->row = @pg_fetch_array($query_id, $row_offset, PGSQL_ASSOC); } else { - if($this->rownum[$query_id]) + if( $this->rownum[$query_id] ) { $this->row = @pg_fetch_array($query_id, $this->rownum[$query_id]-1, PGSQL_ASSOC); } else { $this->row = @pg_fetch_array($query_id, $this->rownum[$query_id], PGSQL_ASSOC); - if($this->row) + + if( $this->row ) { $this->rownum[$query_id]++; } } } + return $this->row[$field]; } - else - { - return false; - } + + return false; } - function sql_rowseek($offset, $query_id = 0){ + + function sql_rowseek($offset, $query_id = 0) + { + if(!$query_id) { $query_id = $this->query_result; } - if($query_id) + + if( $query_id ) { - if($offset>-1) + if( $offset > -1 ) { $this->rownum[$query_id] = $offset; return true; @@ -376,21 +329,17 @@ class sql_db return false; } } - else - { - return false; - } + + return false; } - function sql_nextid($query_id = 0) + + function sql_nextid() { - if(!$query_id) - { - $query_id = $this->query_result; - } + $query_id = $this->query_result; + if($query_id && $this->last_query_text[$query_id] != "") { - - if( preg_match("/^INSERT[ ]+INTO[ ]+([a-z0-9\_\-]+)/is", $this->last_query_text[$query_id], $tablename) ) + if( preg_match("/^INSERT[\t\n ]+INTO[\t\n ]+([a-z0-9\_\-]+)/is", $this->last_query_text[$query_id], $tablename) ) { $query = "SELECT last_value FROM " . $tablename[1] . "_id_seq"; @@ -401,46 +350,44 @@ class sql_db } $temp_result = @pg_fetch_array($temp_q_id, 0, PGSQL_ASSOC); - if($temp_result) - { - return $temp_result['last_value']; - } - else - { - return false; - } - } - else - { - return false; + + return ( $temp_result ) ? $temp_result['last_value'] : false; } } - else - { - return false; - } + + return false; } - function sql_freeresult($query_id = 0){ - if(!$query_id){ + + function sql_affectedrows($query_id = 0) + { + if( !$query_id ) + { $query_id = $this->query_result; } - if($query_id) - { - $result = @pg_freeresult($query_id); - return $result; - } - else - { - return false; - } + + return ( $query_id ) ? @pg_cmdtuples($query_id) : false; } + + function sql_freeresult($query_id = 0) + { + if( !$query_id ) + { + $query_id = $this->query_result; + } + + return ( $query_id ) ? @pg_freeresult($query_id) : false; + } + function sql_error($query_id = 0) { - if(!$query_id){ + if( !$query_id ) + { $query_id = $this->query_result; } + $result['message'] = @pg_errormessage($this->db_connect_id); $result['code'] = -1; + return $result; }