0,0 → 1,275 |
<? |
$dbversion = "2.6"; |
$_Handle = -1; |
$_hCount = 0; |
|
function OpenDB($host = "", $dbname = "") { |
global $_Handle; |
global $_hCount; |
|
if ($_hCount > 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 "<p class=\"error\">OpenDB Error: Datenbank $dbname konnte nicht geöffnet werden!</p>\n"; |
return false; |
} |
|
$_Handle = $db; |
$_hCount++; |
return $db; |
} |
|
function QueryDB($db, $qstr) { |
global $_hCount; |
|
if ($_hCount == 0) { |
echo "<p class=\"error\">ERROR: Es ist keine Datenbank geöffnet!</p>\n"; |
return NULL; |
} |
|
if (!isset($db) || !isset($qstr) || $qstr == "") { |
echo "<p class=\"error\">ERROR: Keine gültige SQL-Abfrage!</p>\n"; |
return NULL; |
} |
|
$result = pg_query($db, $qstr); |
|
if (!$result) { |
$errormessage = pg_errormessage($db); |
echo "<p class=\"error\">ERROR: $errormessage<br>\n"; |
echo "<br>SQL-Error: $qstr</p>\n"; |
return NULL; |
} |
|
return $result; |
} |
|
function TQueryDB($db, $qstr) { |
global $_hCount; |
|
if ($_hCount == 0) { |
echo "<p class=\"error\">ERROR: Es ist keine Datenbank geöffnet!</p>\n"; |
return NULL; |
} |
|
if (!isset($db) || !isset($qstr) || $qstr == "") { |
echo "<p class=\"error\">ERROR: Keine gültige SQL-Abfrage!</p>\n"; |
return NULL; |
} |
|
$result = pg_query($db, "BEGIN"); |
|
if (!$result) { |
$errormessage = pg_errormessage($db); |
echo "<p class=\"error\">ERROR: $errormessage</td>\n"; |
return NULL; |
} |
|
$result = pg_query($db, $qstr); |
|
if (!$result) { |
$errormessage = pg_errormessage($db); |
echo "<p class=\"error\">ERROR: $errormessage<br>\n"; |
echo "<br>SQL-Error: $qstr</p>\n"; |
pg_query($db, "ROLLBACK"); |
return NULL; |
} |
|
$result = pg_query($db, "COMMIT"); |
|
if (!$result) { |
$errormessage = pg_errormessage($db); |
echo "<p class=\"error\">ERROR: $errormessage</p>\n"; |
return NULL; |
} |
|
return $result; |
} |
|
function fetchDB($result, $pos) { |
global $_hCount; |
|
if ($_hCount == 0) { |
echo "<p class=\"error\">ERROR: Es ist keine Datenbank geöffnet!</p>\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 "<p class=\"error\">ERROR: Es ist keine Datenbank geöffnet!</p>\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 "<p class=\"error\">$message</p>\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); |
?> |