summaryrefslogtreecommitdiffstats
path: root/frontends/php/include/db.inc.php
diff options
context:
space:
mode:
authorosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-11-07 08:56:18 +0000
committerosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2006-11-07 08:56:18 +0000
commit23bdb608fe93cf4a98683dae0a09fcca30aa9d1d (patch)
treefa3b2460d754189c42780f7da474fb6599240856 /frontends/php/include/db.inc.php
parentdda9501aff9b7293055eee1a8c769068d3701ad7 (diff)
downloadzabbix-23bdb608fe93cf4a98683dae0a09fcca30aa9d1d.tar.gz
zabbix-23bdb608fe93cf4a98683dae0a09fcca30aa9d1d.tar.xz
zabbix-23bdb608fe93cf4a98683dae0a09fcca30aa9d1d.zip
- developed frontend installation wizard (Eugene)
git-svn-id: svn://svn.zabbix.com/trunk@3434 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/include/db.inc.php')
-rw-r--r--frontends/php/include/db.inc.php134
1 files changed, 95 insertions, 39 deletions
diff --git a/frontends/php/include/db.inc.php b/frontends/php/include/db.inc.php
index 000c14fb..8be2f932 100644
--- a/frontends/php/include/db.inc.php
+++ b/frontends/php/include/db.inc.php
@@ -19,52 +19,113 @@
**/
?>
<?php
+ function DBconnect(&$error)
+ {
+ $result = true;
+
+ global $DB, $DB_TYPE, $DB_SERVER, $DB_DATABASE, $DB_USER, $DB_PASSWORD;
-// DATABASE CONFIGURATION
-
-// $DB_TYPE ="ORACLE";
-// $DB_TYPE ="POSTGRESQL";
- $DB_TYPE ="MYSQL";
- $DB_SERVER ="localhost";
- $DB_DATABASE ="osmiy1";
- $DB_USER ="root";
- $DB_PASSWORD ="";
-// END OF DATABASE CONFIGURATION
+ if(!isset($DB_TYPE))
+ {
+ $error = "Uncnown database type.";
+ $result = false;
+ }
+ else
+ {
+ if($DB_TYPE == "MYSQL")
+ {
+ $DB = mysql_pconnect($DB_SERVER,$DB_USER,$DB_PASSWORD);
+ if(!mysql_select_db($DB_DATABASE))
+ {
+ $error = "Error connecting to database [".mysql_error()."]";
+ $result = false;
+ }
+ else
+ {
+ mysql_select_db($DB_DATABASE);
+ }
+ }
+ if($DB_TYPE == "POSTGRESQL")
+ {
+ $DB=pg_pconnect("host='$DB_SERVER' dbname='$DB_DATABASE' user='$DB_USER' password='$DB_PASSWORD'");
+ if(!$DB)
+ {
+ $error = "Error connecting to database";
+ $result = false;
+ }
+ }
- global $USER_DETAILS;
+ if($DB_TYPE == "ORACLE")
+ {
+ $DB = ocilogon($DB_USER, $DB_PASSWORD, "");
+ // $DB = ocilogon($DB_USER, $DB_PASSWORD, "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$DB_SERVER)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=$DB_DATABASE)))");
+ if(!$DB)
+ {
+ $error = "Error connecting to database";
+ $result = false;
+ }
+ }
+ }
+ return $result;
+ }
- if($DB_TYPE == "MYSQL")
+ function DBclose()
{
- $DB=mysql_pconnect($DB_SERVER,$DB_USER,$DB_PASSWORD);
- if(!mysql_select_db($DB_DATABASE))
+ global $DB, $DB_TYPE, $DB_SERVER, $DB_DATABASE, $DB_USER, $DB_PASSWORD;
+
+ $result = false;
+
+ if($DB)
{
- echo "Error connecting to database [".mysql_error()."]";
- exit;
+ if($DB_TYPE == "MYSQL") $result = mysql_close($DB);
+ elseif($DB_TYPE == "POSTGRESQL") $result = pg_close($DB);
+ elseif($DB_TYPE == "ORACLE") $result = ociclose($DB);
}
- mysql_select_db($DB_DATABASE);
+ unset(
+ $GLOBALS['DB'],
+ $GLOBALS['DB_TYPE'],
+ $GLOBALS['DB_SERVER'],
+ $GLOBALS['DB_DATABASE'],
+ $GLOBALS['DB_USER'],
+ $GLOBALS['DB_PASSWORD']
+ );
+
+
+ return $result;
}
- if($DB_TYPE == "POSTGRESQL")
+
+ function DBloadfile($file, &$error)
{
- $DB=pg_pconnect("host='$DB_SERVER' dbname='$DB_DATABASE' user='$DB_USER' password='$DB_PASSWORD'");
- if(!$DB)
+ global $DB_TYPE;
+
+ if(!file_exists($file))
{
- echo "Error connecting to database";
- exit;
+ $error = 'DBloadfile. Missing file['.$file.']';
+ return false;
}
- }
+
+ $fl = file($file);
+
+ foreach($fl as $n => $l) if(substr($l,0,2)=='--') unset($fl[$n]);
+
+ $fl = explode(";\n", implode("\n",$fl));
+ unset($fl[count($fl)-1]);
+
+ $result = true;
- if($DB_TYPE == "ORACLE")
- {
- $DB = ocilogon($DB_USER, $DB_PASSWORD, "");
-// $DB = ocilogon($DB_USER, $DB_PASSWORD, "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$DB_SERVER)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=$DB_DATABASE)))");
- if(!$DB)
+ foreach($fl as $sql)
{
- echo "Error connecting to database";
- exit;
+ if(empty($sql)) continue;
+
+ if(!DBexecute($sql,0))
+ {
+ $error = '';
+ return false;
+ }
}
+ return true;
}
-
function DBstart()
{
/* TODO *//* start transaction */
@@ -103,7 +164,6 @@
{
global $DB,$DB_TYPE;
-// echo $query,"<br>";
COpt::savesqlrequest($query);
if($DB_TYPE == "MYSQL")
@@ -115,7 +175,7 @@ COpt::savesqlrequest($query);
$result=mysql_query($query,$DB);
if(!$result)
{
- echo "Error in query [$query] [".mysql_error()."]";
+ error("Error in query [$query] [".mysql_error()."]");
}
return $result;
}
@@ -155,7 +215,6 @@ COpt::savesqlrequest($query);
{
global $DB,$DB_TYPE;
-// echo $query,"<br>";
COpt::savesqlrequest($query);
$result = FALSE;
@@ -201,7 +260,6 @@ COpt::savesqlrequest($query);
}
if($DB_TYPE == "ORACLE")
{
-// echo "DBfetch<br>";
if(!ocifetchinto($cursor, $row, OCI_ASSOC+OCI_NUM+OCI_RETURN_NULLS))
{
return FALSE;
@@ -235,8 +293,7 @@ COpt::savesqlrequest($query);
$row=pg_fetch_row($result,$rownum);
if(!$row)
{
- echo "Error getting row";
- exit;
+ fatal_error("Error getting row");
}
return $row[$fieldnum];
}
@@ -258,7 +315,6 @@ COpt::savesqlrequest($query);
if($DB_TYPE == "POSTGRESQL")
{
$oid=pg_getlastoid($result);
-// echo "OID:$oid<br>";
$sql="select $field from $table where oid=$oid";
$result=DBselect($sql);
return get_field($result,0,0);
@@ -279,7 +335,7 @@ COpt::savesqlrequest($query);
}
/* string value prepearing */
-if($DB_TYPE == "ORACLE") {
+if(isset($DB_TYPE) && $DB_TYPE == "ORACLE") {
function zbx_dbstr($var) {
return "'".ereg_replace('\'','\'\'',$var)."'";
}