diff options
Diffstat (limited to 'frontends/php/include/config.inc.php')
-rw-r--r-- | frontends/php/include/config.inc.php | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/frontends/php/include/config.inc.php b/frontends/php/include/config.inc.php index 12b99f7b..6b4fd6d9 100644 --- a/frontends/php/include/config.inc.php +++ b/frontends/php/include/config.inc.php @@ -395,6 +395,23 @@ document.writeln(snd_tag); return "$priorities,$md5sum"; } + function get_dbid($table,$field) + { + global $ZBX_CURNODEID; + + $sql="select max($field) as id from $table where mod($field,100)=$ZBX_CURNODEID"; + $result=DBselect($sql); + $row=DBfetch($result); + if($row && !is_null($row["id"])) + { + return $row["id"]+100; + } + else + { + return 100+$ZBX_CURNODEID; + } + } + function get_function_by_functionid($functionid) { $sql="select * from functions where functionid=$functionid"; @@ -1234,8 +1251,10 @@ COpt::profiling_start("page"); { $lobimage = OCINewDescriptor($DB, OCI_D_LOB); - $sql = "insert into images (name,imagetype,image)". - " values (".zbx_dbstr($name).",".$imagetype.",EMPTY_BLOB())". + $imageid=get_dbid("images","imageid"); + + $sql = "insert into images (imageid,name,imagetype,image)". + " values ($imageid,".zbx_dbstr($name).",".$imagetype.",EMPTY_BLOB())". " return image into :image"; $stid = OCIParse($DB, $sql); if(!$stid) @@ -1537,8 +1556,10 @@ COpt::profiling_start("page"); } else { - $sql="insert into media_type (type,description,smtp_server,smtp_helo,smtp_email,exec_path,gsm_modem) values ($type,".zbx_dbstr($description).",".zbx_dbstr($smtp_server).",".zbx_dbstr($smtp_helo).",".zbx_dbstr($smtp_email).",".zbx_dbstr($exec_path).",".zbx_dbstr($gsm_modem).")"; + $mediatypeid=get_dbid("media_type","mediatypeid"); + $sql="insert into media_type (mediatypeid,type,description,smtp_server,smtp_helo,smtp_email,exec_path,gsm_modem) values ($mediatypeid,$type,".zbx_dbstr($description).",".zbx_dbstr($smtp_server).",".zbx_dbstr($smtp_helo).",".zbx_dbstr($smtp_email).",".zbx_dbstr($exec_path).",".zbx_dbstr($gsm_modem).")"; $ret = DBexecute($sql); + if($ret) $ret = $mediatypeid; } return $ret; } @@ -1559,8 +1580,11 @@ COpt::profiling_start("page"); { $s=$s|pow(2,(int)$severity[$i]); } - $sql="insert into media (userid,mediatypeid,sendto,active,severity,period) values ($userid,".zbx_dbstr($mediatypeid).",".zbx_dbstr($sendto).",$active,$s,".zbx_dbstr($period).")"; - return DBexecute($sql); + $mediaid=get_dbid("media","mediaid"); + $sql="insert into media (mediaid,userid,mediatypeid,sendto,active,severity,period) values ($mediaid,$userid,".zbx_dbstr($mediatypeid).",".zbx_dbstr($sendto).",$active,$s,".zbx_dbstr($period).")"; + $ret = DBexecute($sql); + if($ret) $ret = $mediaid; + return $ret; } # Update Media definition @@ -2656,13 +2680,13 @@ COpt::profiling_stop("script"); function add_valuemap($name, $mappings) { if(!is_array($mappings)) return FALSE; + + $valuemapid = get_dbid("valuemaps","valuemapid"); - $result = DBexecute("insert into valuemaps (name) values (".zbx_dbstr($name).")"); + $result = DBexecute("insert into valuemaps (valuemapid,name) values ($valuemapid,".zbx_dbstr($name).")"); if(!$result) return $result; - $valuemapid = DBinsert_id($result,"valuemaps","valuemapid"); - $result = add_mapping_to_valuemap($valuemapid, $mappings); if(!$result){ delete_valuemap($valuemapid); |