diff --git a/system/checkdb.php b/system/checkdb.php
index 523a7eb47..7be14b59f 100644
--- a/system/checkdb.php
+++ b/system/checkdb.php
@@ -32,16 +32,13 @@ require_once('database.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/benutzerberechtigung.class.php');
-// Datenbank Verbindung
-if (!$conn = pg_pconnect('host='.DB_HOST.' port='.DB_PORT.' dbname='.DB_NAME.' user='.DB_USER.' password='.DB_PASSWORD))
- die('Es konnte keine Verbindung zum Server aufgebaut werden!'.pg_last_error($conn));
-
+$db = new basis_db();
$uid=get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('admin'))
- die('Sie haben keine Berechtigung für diese Seite');
+ die('Sie haben keine Berechtigung f�r diese Seite');
echo '
@@ -124,8 +121,8 @@ if(isset($_POST['commit']))
{
if(isset($_POST['qry']))
{
- if(!pg_query($conn, $_POST['qry']))
- echo pg_last_error($conn);
+ if(!$db->db_query($_POST['qry']))
+ echo $db->db_last_error();
}
}
@@ -139,10 +136,10 @@ foreach ($schemas as $schema)
$obj[$schema['name']]=array();
$obj[$schema['name']]['error']=false;
- $qry = "SELECT nspname FROM pg_namespace WHERE nspname='".$schema['name']."'";
- if($result = pg_query($conn, $qry))
+ $qry = "SELECT table_schema FROM information_schema.tables WHERE table_schema='".$schema['name']."'";
+ if($db->db_query($qry))
{
- if(!pg_num_rows($result)>0)
+ if(!$db->db_num_rows()>0)
{
$obj[$schema['name']]['qry']='CREATE SCHEMA '.$schema['name'].';';
$obj[$schema['name']]['error']=true;
@@ -158,24 +155,29 @@ $tabs=array_keys($tabellen);
$i=0;
foreach ($tabellen AS $tabelle)
{
+ if(!isset($tabelle['schemaid']) || $tabelle['schemaid']=='')
+ {
+ //Tabelle auslassen, wenn kein Schema angegeben ist
+ echo 'Tabelle '.$tabelle['name'].' ist keinem Schema zugeordnet!
';
+ continue;
+ }
$obj[$schemas[$tabelle['schemaid']]['name']]['tables'][$tabelle['name']]=array();
$sql_query2='';
$pk='';
// Tabelle pruefen
- //var_dump($tabelle);
- $sql_query="SELECT tablename FROM pg_catalog.pg_tables WHERE schemaname='".$schemas[$tabelle['schemaid']]['name']."' AND tablename='".$tabelle['name']."';";
- if (!$result=pg_query($conn,$sql_query))
- echo '
'.$tabs[$i].': '.pg_last_error($conn).'
';
+
+ $sql_query="SELECT table_name FROM information_schema.tables WHERE table_schema='".$schemas[$tabelle['schemaid']]['name']."' AND table_name='".$tabelle['name']."';";
+ if (!$db->db_query($sql_query))
+ echo '
'.$tabs[$i].': '.$db->db_last_error().'
';
else
{
- if (pg_num_rows($result)==0)
+ if ($db->db_num_rows()==0)
{
$sql_query= 'CREATE TABLE '.$schemas[$tabelle['schemaid']]['name'].'.'.$tabelle['name']." (";
foreach ($tabelle['attribute'] AS $attribut)
{
if ($datatypes[$attribut['datatypeid']]['name']!='geometry')
{
- //echo $datatypes[$attribut['datatypeid']]['name'];
$sql_query.= $attribut['name'].' ';
if ($attribut['pk'])
$pk.=$attribut['name'].',';
@@ -201,12 +203,7 @@ foreach ($tabellen AS $tabelle)
if ($pk!="")
$sql_query.=', CONSTRAINT "pk_'.$schemas[$tabelle['schemaid']]['name'].'_'.$tabelle['name'].'" PRIMARY KEY ('.substr($pk,0,-1).')';
$sql_query.=');';
- //echo $sql_query.'
'.$sql_query2;
- //if (!$res_attr=pg_query($conn,$sql_query.$sql_query2))
- // echo '
'.$schemas[$tabelle['schemaid']]['name'].'.'.$tabelle['name'].': '.pg_last_error($conn).'
'.$sql_query.'
'.$sql_query_nn.'
';
- //else
- // echo 'Tabelle '.$schemas[$tabelle['schemaid']]['name'].'.'.$tabelle['name'].' wurde erfolgreich angelegt!
';
-
+
$obj[$schemas[$tabelle['schemaid']]['name']]['tables'][$tabelle['name']]['qry']=$sql_query;
$obj[$schemas[$tabelle['schemaid']]['name']]['error']=true;
}
@@ -217,25 +214,15 @@ foreach ($tabellen AS $tabelle)
{
$obj[$schemas[$tabelle['schemaid']]['name']]['tables'][$tabelle['name']]['attribute'][$attribut['name']]=array();
- //var_dump($attribut);
- $sql_query="SELECT nspname AS schemaname, relname AS tablename, pg_get_userbyid(relowner) AS tableowner, attname AS attribute
- FROM pg_catalog.pg_attribute JOIN pg_catalog.pg_class ON (attrelid=relfilenode) JOIN pg_namespace ON (oid=relnamespace)
- WHERE relkind='r' AND nspname='".$schemas[$tabelle['schemaid']]['name']."' AND relname='".$tabelle['name']."'
- AND attname='".$attribut['name']."'; ";
- if (!$res_attr=pg_query($conn,$sql_query))
+ $qry_query="SELECT column_name FROM information_schema.columns
+ WHERE table_schema=".$schemas[$tabelle['schemaid']]['name']."'
+ AND table_name='".$tabelle['name']."' AND column_name='".$attribut['name']."'; ";
+ if ($db->db_query($sql_query))
{
- //echo '
'.$attribut['name'].': '.pg_last_error($conn).'
';
- }
- else
- {
- if (pg_num_rows($res_attr)==1)
- {
- //echo $schemas[$tabelle['schemaid']]['name'].'.'.$tabelle['name'].'.'.$attribut['name'].': OK - ';
- }
- else if (pg_num_rows($res_attr)==0)
+ if ($db->db_num_rows()==0)
{
$sql_query_nn='';
- //echo $schemas[$tabelle['schemaid']]['name'].'.'.$tabelle['name'].'.'.$attribut['name'].' ist nicht angelegt!
';
+
$sql_query='ALTER TABLE '.$schemas[$tabelle['schemaid']]['name'].'.'.$tabelle['name'].'
ADD COLUMN '.$attribut['name'].' ';
$sql_query.=$datatypes[$attribut['datatypeid']]['name'];
@@ -259,11 +246,7 @@ foreach ($tabellen AS $tabelle)
ALTER COLUMN '.$attribut['name'].' SET NOT NULL;';
}
$sql_query.=';';
- //echo $sql_query;
- //if (!$res_attr=pg_query($conn,$sql_query.$sql_query_nn))
- // echo '
'.$attribut['name'].': '.pg_last_error($conn).'
'.$sql_query.'
'.$sql_query_nn.'
';
- //else
- // echo $schemas[$tabelle['schemaid']]['name'].'.'.$tabelle['name'].'.'.$attribut['name'].' wurde erfolgreich hinzugefuegt!
';
+
$obj[$schemas[$tabelle['schemaid']]['name']]['tables'][$tabelle['name']]['attribute'][$attribut['name']]['qry']=$sql_query;
$obj[$schemas[$tabelle['schemaid']]['name']]['error']=true;
$obj[$schemas[$tabelle['schemaid']]['name']]['tables'][$tabelle['name']]['error']=true;
@@ -279,8 +262,7 @@ foreach ($tabellen AS $tabelle)
$i++;
}
-//echo '

';
+echo '