0) { $_hCount++; return $_Handle; } if (!strlen($host) || !strlen($dbname)) { $ini_array = parse_ini_file("setup/setup.dat"); $dbname = $ini_array['dbname']; $host = $ini_array['domain']; $port = $ini_array['port']; $user = $ini_array['dbuser']; $passwd = $ini_array['dbpasswd']; } if (isset($host) && strlen($host) > 0) $connStr = "host=$host "; else $connStr = "host=localhost"; if (isset($dbname) && strlen($dbname) > 0) $connStr .= " dbname=$dbname"; if (isset($port) && strlen($port) > 0) $connStr .= " port=$port"; if (isset($user) && strlen($user) > 0) $connStr .= " user=$user"; if (isset($passwd) && strlen($passwd) > 0) $connStr .= " password=$passwd"; $db = pg_connect($connStr); if ($db == false) { echo "

OpenDB Error: Datenbank $dbname konnte nicht geöffnet werden!

\n"; return false; } $_Handle = $db; $_hCount++; return $db; } function QueryDB($db, $qstr) { global $_hCount; if ($_hCount == 0) { echo "

ERROR: Es ist keine Datenbank geöffnet!

\n"; return NULL; } if (!isset($db) || !isset($qstr) || $qstr == "") { echo "

ERROR: Keine gültige SQL-Abfrage!

\n"; return NULL; } $result = pg_query($db, $qstr); if (!$result) { $errormessage = pg_errormessage($db); echo "

ERROR: $errormessage
\n"; echo "
SQL-Error: $qstr

\n"; return NULL; } return $result; } function TQueryDB($db, $qstr) { global $_hCount; if ($_hCount == 0) { echo "

ERROR: Es ist keine Datenbank geöffnet!

\n"; return NULL; } if (!isset($db) || !isset($qstr) || $qstr == "") { echo "

ERROR: Keine gültige SQL-Abfrage!

\n"; return NULL; } $result = pg_query($db, "BEGIN"); if (!$result) { $errormessage = pg_errormessage($db); echo "

ERROR: $errormessage\n"; return NULL; } $result = pg_query($db, $qstr); if (!$result) { $errormessage = pg_errormessage($db); echo "

ERROR: $errormessage
\n"; echo "
SQL-Error: $qstr

\n"; pg_query($db, "ROLLBACK"); return NULL; } $result = pg_query($db, "COMMIT"); if (!$result) { $errormessage = pg_errormessage($db); echo "

ERROR: $errormessage

\n"; return NULL; } return $result; } function fetchDB($result, $pos) { global $_hCount; if ($_hCount == 0) { echo "

ERROR: Es ist keine Datenbank geöffnet!

\n"; return false; } if (!isset($result)) { Error("fetchDB: Es wurde kein Ergebnisset übergeben!"); return false; } if (!isset($pos) || $pos < 0) { Error("fetchDB: Keine oder ungültige Position!"); return false; } if (($erg = pg_fetch_row($result, $pos)) == false) { Error("fetchDB: Fehler beim Auslesen eines Datensatzes!"); return false; } return $erg; } function numrowsDB($result) { global $_hCount; if ($_hCount == 0) { echo "

ERROR: Es ist keine Datenbank geöffnet!

\n"; return -1; } if (!isset($result)) { Error("numrowDB: Es wurde kein Ergebnisset übergeben!"); return -1; } if (($rows = pg_num_rows($result)) == -1) { Error("numrowDB: Anzahl Datensätze konnte nicht bestimmt werden!"); return -1; } return $rows; } function numrowDB($result) { return numrowsDB($result); } function closeDB($db) { global $_hCount; global $_Handle; if ($_hCount > 1) { $_hCount--; return true; } $_hCount = 0; $_Handle = -1; return pg_close($db); } function Journal($typ, $message, $db=NULL) { global $unum; $dbflag = false; if (!isset($unum) || $unum <= 0) return; if ($db == NULL) { $db = OpenDB(); $dbflag = true; } $query = "select kj_num from key_jtype where kj_num = $typ"; $result = QueryDB($db, $query); if (!$result) { closeDB($db); return; } if (pg_num_rows($result) <= 0) $typ = 999; $query = "select co_ejournal from counter"; $result = QueryDB($db, $query); if (!$result) { closeDB($db); return; } $data = pg_fetch_row($result, 0); $co_ejournal = $data[0] + 1; $zeit = time(); $query = "insert into ejournal (ej_num, ej_date, ej_uid, ej_type,"; $query .= "ej_text) values ($co_ejournal, $zeit, $unum, $typ, '$message')"; if (!QueryDB($db, "begin")) { closeDB($db); return; } if (!QueryDB($db, $query)) { QueryDB($db, "rollback"); closeDB($db); return; } $query = "update counter set co_ejournal = $co_ejournal"; if (!QueryDB($db, $query)) { QueryDB($db, "rollback"); closeDB($db); return; } QueryDB($db, "commit"); if ($dbflag) closeDB($db); } function Error($message) { echo "

$message

\n"; } # Pruefen der Datenbankversion: # $dbver = OpenDB(); $qs = "select version from counter"; if (!($erg = QueryDB($dbver, $qs))) { Error("Falsche oder keine Datenbank!"); exit; } $data = pg_fetch_row($erg, 0); if ($data[0] != $dbversion) { Error("Die Datenbank hat eine ungültige Versionsnummer!"); closeDB($dbver); exit; } closeDB($dbver); unset($dbver); unset($erg); unset($qs); unset($data); ?>