$os = $regs[1]; // this looks better under WinX if (eregi("Win", $os)) { $crlf = "\r\n"; } } $orig_query = $sql_query; // $sql_query = str_replace($crlf, "", $sql_query); $pieces = noQuoteSplit($sql_query, ";", "'"); // $pieces = explode($sql_query, ";"); if (count($pieces) == 1) { $sql_query = ereg_replace(";\$", "", trim($sql_query)); include "sql.php"; exit; } for ($i = 0; $i < count($pieces); $i++) { if (!$from_file) { $pieces[$i] = stripslashes($pieces[$i]); } $pieces[$i] = trim($pieces[$i]); if (!empty($pieces[$i]) && ereg(";", $pieces[$i])) { // echo $pieces[$i], "<br><br>"; $result = pg_exec($link, pre_query($pieces[$i])) or pg_die(pg_errormessage(), $pieces[$i], __FILE__, __LINE__); } } if (eregi("create table|drop table|create database|drop database", $sql_query)) { $reload = "true"; } $sql_query = nl2br(stripslashes($orig_query)); $message = $strSuccess; include "db_details.php";
function my_handler($sql_insert) { global $table, $link, $new_name; $sql_insert = ereg_replace($table, $new_name, $sql_insert); $result = pg_exec($link, pre_query($sql_insert)) or pg_die(pg_errormessage($link), $sql_insert, __FILE__, __LINE__); $sql_query = $sql_insert; }
function set_privilege($sql_set_privilege) { global $link; if (!($res = @pg_exec($link, $sql_set_privilege))) { pg_die(pg_errormessage($link), $sql_set_privilege, __FILE__, __LINE__); } else { echo "<p>{$sql_set_privilege}</p>\n"; } }
<?php if (!isset($message)) { include "header.inc.php"; } else { show_message($message); } $strRevArgs = ereg_replace(",", " ", $arg_list); $sql_func_props = "\n\tSELECT \n\t\tpc.oid,\n\t\tproname, \n\t\tlanname as language,\n\t\tpt.typname as return_type,\n\t\tpa.typname as argtype,\n\t\tprosrc as source,\n\t\toidvectortypes(pc.proargtypes) AS arguments\n\tFROM \n\t\tpg_proc pc, pg_language pl, pg_type pt, pg_type pa\n\tWHERE \n\t\tpc.oid = '{$function_oid}'::oid\n\t\tAND pc.prolang = pl.oid\n\t\tAND pc.prorettype = pt.oid\n\tUNION\n\tSELECT \n\t\tpc.oid,\n\t\tproname, \n\t\tlanname AS language,\n\t\t'OPAQUE' AS return_type,\n\t\tpa.typname AS argtype,\n\t\tprosrc AS source,\n\t\toidvectortypes(pc.proargtypes) AS arguments\n\tFROM \n\t\tpg_proc pc, pg_language pl, pg_type pa\n\tWHERE \n\t\tpc.oid = '{$function_oid}'::oid\n\t\tAND pc.prolang = pl.oid\n\t\tAND pc.prorettype = 0\n\t"; // echo $sql_func_props; $res_props = pg_exec($link, pre_query($sql_func_props)) or pg_die(pg_errormessage(), $sql_func_props, __FILE__, __LINE__); $row = @pg_fetch_array($res_props, 0); $strArgList = ereg_replace(" ", ", ", $row[arguments]); $query = "?server={$server}&db={$db}&rel_type={$rel_type}&function_oid={$row['oid']}"; $func_sql = "{$cfgQuotes}{$row['proname']}{$cfgQuotes}" . "({$strArgList})"; ?> <table border=<?php echo $cfgBorder; ?> > <TR> <TH><?php echo $strFunc; ?> </TH> <TH><?php echo $strRetType; ?> </TH> <TH><?php echo $strLang;
function get_table_csv($link, $table, $sep, $handler) { global $cfgQuotes; $result = pg_exec($link, "SELECT * FROM {$cfgQuotes}{$table}{$cfgQuotes}") or pg_die(pg_errormessage(), "", __FILE__, __LINE__); $i = 0; if (pg_numrows($result)) { while ($row = @pg_fetch_row($result, $i++)) { unset($schema_insert); for ($j = 0; $j < pg_numfields($result); $j++) { if (!isset($row[$j])) { $schema_insert .= "NULL" . $sep; } elseif ($row[$j] != "") { $schema_insert .= "{$row[$j]}" . $sep; } else { $schema_insert .= "" . $sep; } } $schema_insert = ereg_replace($sep . "\$", "", $schema_insert); // $schema_insert .= ")"; $handler(trim($schema_insert)); } } else { echo "{$strNoData} {$strFound}"; } return true; }
echo "\n\t\t\t\t<th>{$strReferences}</th>\n\t\t\t\t<th>{$strPrimary}</th>\n\t\t\t"; $sql_get_fields = "\n\t\t\t\tSELECT \n\t\t\t\t\ta.attnum,\n\t\t\t\t\ta.attname AS field,\n\t\t\t\t\tc.relname AS table_name\n\t\t\t\tFROM \n\t\t\t\t\tpg_class c, pg_attribute a\n\t\t\t\tWHERE \n\t\t\t\t\tc.relname NOT LIKE 'pg%'\n\t\t\t\t\tAND relkind = 'r'\n\t\t\t\t\tAND a.attnum > 0\n\t\t\t\t\tAND a.attrelid = c.oid\n\t\t\t\tORDER BY\n\t\t\t\t\ttable_name, attnum\n\t\t\t\t"; $fields = @pg_exec($link, pre_query($sql_get_fields)) or pg_die(pg_errormessage(), $sql_get_fields, __FILE__, __LINE__); $num_fields_fk = @pg_numrows($fields); for ($i_field = 0; $i_field < $num_fields_fk; $i_field++) { $field = pg_result($fields, $i_field, "field"); $table_name = pg_result($fields, $i_field, "table_name"); $strFKFields .= "<option value='" . addslashes("{$cfgQuotes}{$table_name}{$cfgQuotes}({$cfgQuotes}{$field}{$cfgQuotes})") . "'>{$table_name}({$field})\n"; // $aryField[] = "$cfgQuotes$sel_tables[$i_tabs]$cfgQuotes.$cfgQuotes$field$cfgQuotes"; } } echo "\n\t\t\t<th>{$strIndex}</th>\n\t\t\t<th>{$strUnique}</th>\n\t\t"; } echo "</tr>"; $sql_get_types = "\n\t\tSELECT typname \n\t\tFROM pg_type pt\n\t\tWHERE typname NOT LIKE '\\\\_%' AND typrelid = 0\n\t\tORDER BY typname\n\t"; $types = pg_exec($link, pre_query($sql_get_types)) or pg_die(pg_errormessage(), $sql_get_types); for ($i = 0; $i < $num_fields; $i++) { if (isset($result)) { $row = pg_fetch_array($result, $i); } $bgcolor = $cfgBgcolorOne; $i % 2 ? 0 : ($bgcolor = $cfgBgcolorTwo); ?> <tr bgcolor="<?php echo $bgcolor; ?> "> <td valign=\"top\"> <input type="text" name="field_name[]" size="20" value="<?php if (isset($row) && isset($row[field])) { echo $row[field];
$len = $row_table_def["lengthvar"] - 4; } else { if ($row_table_def["length"] > 0) { $len = $row_table_def["length"]; } else { // $len = "var"; unset($len); } } unset($selected_func); unset($funcs); if (!$edit && $row_table_def["hasdefault"] == "t" && $show_defaults) { $sql_get_default = "\n\t\t\t\tSELECT d.adsrc AS \"default_val\"\n\t\t\t\tFROM pg_attrdef d, pg_class c \n\t\t\t\tWHERE \n\t\t\t\t\tc.relname = '{$table}' AND \n\t\t\t\t\tc.oid = d.adrelid AND\n\t\t\t\t\td.adnum = {$row_table_def['attnum']}\n\t\t\t"; // echo "<p>", $sql_get_default, "<p>"; if (!($def_res = @pg_exec($link, pre_query($sql_get_default)))) { pg_die(pg_errormessage(), $sql_get_default, __FILE__, __LINE__); unset($row[$field]); } else { if (pg_numrows($def_res) > 0) { $row[$field] = @pg_result($def_res, 0, "default_val"); if (eregi("([[:alnum:]_]+)\\(([[:alnum:][:punct:][:cntrl:][:space:]]*)\\)\$", $row[$field], $vals)) { $selected_func = $vals[1]; $row[$field] = $vals[2]; $row[$field] = ereg_replace("^'", "'{$cfgQuotes}", $row[$field]); $row[$field] = ereg_replace("'::", "{$cfgQuotes}'::", $row[$field]); $row[$field] = ereg_replace("'\$", "{$cfgQuotes}'", $row[$field]); } } else { unset($row[$field]); } }
$typename = pg_result($types, $i_type, "typname"); if (trim($typename) == trim($func[return_type])) { $strSelType = " selected"; } else { unset($strSelType); } echo "<option value=\"{$typename}\"{$strSelType}>{$typename}"; } ?> </select> </td> <td> <select name="language"> <?php $sql_get_langs = "SELECT lanname FROM pg_language ORDER BY lanname DESC"; $langs = pg_exec($link, pre_query($sql_get_langs)) or pg_die(pg_errormessage(), $sql_get_langs, __FILE__, __LINE__); for ($i_lang = 0; $i_lang < @pg_numrows($langs); $i_lang++) { $langname = pg_result($langs, $i_lang, "lanname"); if ($func[language] == $langname) { $strSelLang = " selected"; } else { unset($strSelLang); } echo "<option value=\"{$langname}\"{$strSelLang}>{$langname}"; } ?> </select> </td> </tr> <tr><th colspan=4><?php echo $strSrc;
<?php include "header.inc.php"; if (!isset($submit)) { // Set max built-in oid $max = 0; // First, get all available types $sql_get_types = "\n\t\t\t\t(\n\t\t\t\tSELECT typname\n\t\t\t\tFROM pg_type pt\n\t\t\t\tWHERE typname NOT LIKE '\\\\_%'\n\t\t\t\t)\n\t\t\t\tEXCEPT\n\t\t\t\t(\n\t\t\t\tSELECT relname\n\t\t\t\tFROM pg_class\n\t\t\t\tWHERE \n\t\t\t\t\trelkind = 'S' OR relname LIKE 'pg%'\n\t\t\t\t) ORDER BY typname\n\t\t\t\t"; $types = pg_exec($link, pre_query($sql_get_types)) or pg_die(pg_errormessage(), $sql_get_types, __FILE__, __LINE__); // And get functions (userland) as well $sql_get_func = "\n\t\t\t\tSELECT \n\t\t\t\t\tproname\n\t\t\t\tFROM \n\t\t\t\t\tpg_proc pc, pg_user pu\n\t\t\t\tWHERE\n\t\t\t\t\tpc.proowner = pu.usesysid\n\t\t\t\t\tAND pc.oid > '{$max}'::oid\n ORDER BY proname\n\t\t\t"; $funcs = pg_exec($link, pre_query($sql_get_func)) or pg_die(pg_errormessage(), $sql_get_func, __FILE__, __LINE__); ?> <form method=POST> <table border="<?php echo $cfgBorder; ?> "> <tr> <th><?php echo $strProperty; ?> </th> <th><?php echo $strValue; ?> </th> </tr> <tr><td><?php echo $strOperator; ?>
?> <form method=POST> <?php echo $strView, " ", $strName; ?> <br> <input type=text name="view_name" value=""><br> <?php echo $strFields, "<br>"; ?> <select name="sel_fields[]" multiple size=10> <?php for ($i_tabs = 0; $i_tabs < count($sel_tables); $i_tabs++) { $strSelTables .= "<input type=hidden name=\"sel_tables[]\" value=\"{$sel_tables[$i_tabs]}\">\n"; $sql_get_fields = "\n\t\t\tSELECT \n\t\t\t\ta.attnum,\n\t\t\t\ta.attname AS field\n\t\t\tFROM \n\t\t\t\tpg_class c, pg_attribute a\n\t\t\tWHERE \n\t\t\t\tc.relname = '{$sel_tables[$i_tabs]}'\n\t\t\t\tAND a.attnum > 0\n\t\t\t\tAND a.attrelid = c.oid\n\t\t\tORDER BY\n\t\t\t\tattnum\n\t\t\t"; $fields = @pg_exec($link, pre_query($sql_get_fields)) or pg_die(pg_errormessage(), $sql_get_fields, __FILE__, __LINE__); $num_fields = @pg_numrows($fields); for ($i_field = 0; $i_field < $num_fields; $i_field++) { $field = pg_result($fields, $i_field, "field"); echo "<option value='" . addslashes("{$cfgQuotes}{$sel_tables[$i_tabs]}{$cfgQuotes}.{$cfgQuotes}{$field}{$cfgQuotes}") . "'>{$cfgQuotes}{$sel_tables[$i_tabs]}{$cfgQuotes}.{$cfgQuotes}{$field}{$cfgQuotes}\n"; $aryField[] = "{$cfgQuotes}{$sel_tables[$i_tabs]}{$cfgQuotes}.{$cfgQuotes}{$field}{$cfgQuotes}"; } } ?> </select> <br> <?php $arFields[] = " "; for ($i_prim = 0; $i_prim < count($aryField); $i_prim++) { $arFields[] = $aryField[$i_prim];
<?php /* $Id: tbl_select.php,v 1.7 2001/02/02 06:03:08 dwilson Exp $ */ include "header.inc.php"; if (!isset($param) || empty($param[0])) { if (!empty($view)) { $table = $view; } $sql_get_fields = "SELECT * FROM {$cfgQuotes}{$table}{$cfgQuotes} LIMIT 1"; if (!($result = pg_exec($link, pre_query($sql_get_fields)))) { pg_die(pg_errormessage(), $sql_get_fields, __FILE__, __LINE__); } else { ?> <form method="POST" ACTION="tbl_select.php"> <input type="hidden" name="server" value="<?php echo $server; ?> " > <input type="hidden" name="db" value="<?php echo $db; ?> " > <input type="hidden" name="table" value="<?php echo $table; ?> " > <input type="hidden" name="goto" value="<?php echo $goto; ?> ">
} else { $qrUserSave .= " NOCREATEDB"; } if ($usesuper == "true") { $qrUserSave .= " CREATEUSER"; } else { $qrUserSave .= " NOCREATEUSER"; } if (!empty($valuntil)) { $qrUserSave .= " VALID UNTIL '{$valuntil}'"; } // echo $qrUserSave, "<p>"; if (@pg_exec($link, pre_query($qrUserSave))) { echo "{$strUserUpdated}!<p>"; } else { pg_die(pg_errormessage(), $qrUserSave, __FILE__, __LINE__); } unset($save_action); unset($action); } // Display all users if (empty($action)) { $qrUsers = "SELECT * FROM pg_user WHERE usename NOT IN ('root', '{$cfgSuperUser}') ORDER BY usesysid"; $rsUsers = pg_exec($link, pre_query($qrUsers)); $iNumUsers = pg_numrows($rsUsers); if ($iNumUsers > 0) { echo "\n\t\t\t\t<table border=\"{$cfgBorder}\">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>{$strUserName}</th>\n\t\t\t\t\t\t<th>{$strSysID}</th>\n\t\t\t\t\t\t<th>{$strCreateDB}</th>\n\t\t\t\t\t\t<th>{$strSuperUser}</th>\n\t\t\t\t\t\t<!--th>{$strCatUpd}</th-->\n\t\t\t\t\t\t<th>{$strExpires}</th>\n\t\t\t\t\t\t<th>{$strAction}</th>\n\t\t\t\t\t</tr>\n\t\t\t"; for ($iUsers = 0; $iUsers < $iNumUsers; $iUsers++) { $aryUsers = pg_fetch_array($rsUsers, $iUsers); $strBGcolor = $cfgBgcolorOne; $iRows++ % 2 ? 0 : ($strBGcolor = $cfgBgcolorTwo);
<?php /* $Id: tbl_rename.php,v 1.2 2001/02/02 06:03:08 dwilson Exp $ */ $old_name = $table; $table = $new_name; include "header.inc.php"; $sql_query = "ALTER TABLE {$cfgQuotes}{$old_name}{$cfgQuotes} RENAME TO {$cfgQuotes}{$new_name}{$cfgQuotes}"; $result = pg_exec($link, pre_query($sql_query)) or pg_die(pg_errormessage(), $sql_query, __FILE__, __LINE__); $table = $old_name; eval("\$message = \"{$strRenameTableOK}\";"); $table = $new_name; include "tbl_properties.php"; exit; include "footer.inc.php";
<div ID="el200Parent" CLASS="parent"> <p><p> <a class="item" HREF="javascript:void(0)" onClick="expandIt('el200'); return false;"><img NAME="imEx" SRC="images/plus.gif" BORDER="0" ALT="+" width="9" height="9" ID="el200Img"></a> <a class="item"><font color="black" class="heada"><?php echo $strSystemTables; ?> </font></a> </div> <div ID="el200Child" CLASS="child"> <?php $db = $cfgDefaultDB; $conn_str = "user={$cfgServer['stduser']} password={$cfgServer['stdpass']} "; if (!$cfgServer[local]) { $conn_str .= "host={$cfgServer['host']} "; } $conn_str .= "port={$cfgServer['port']} dbname={$db}"; $dbh_tbl = pg_connect($conn_str) or pg_die(pg_errormessage(), $conn_str, __FILE__, __LINE__); $sql_get_tbls = "select relname from pg_class where relname ~ 'pg_.*' and relkind = 'r' or relkind = 'v' order by relname"; $tbl_res = pg_exec($dbh_tbl, pre_query($sql_get_tbls)); $num_tables = @pg_numrows($tbl_res); for ($j = 0; $j < $num_tables; $j++) { $table = pg_result($tbl_res, $j, "relname"); $query_str = "sql_query=" . urlencode("SELECT * FROM {$cfgQuotes}{$table}{$cfgQuotes}") . "&server={$server}&db={$db}&table=" . urlencode($table); ?> <a target="main" href="sql.php?<?php echo $query_str; ?> &goto=tbl_properties.php"><img src="images/browse.gif" border="0" alt="<?php echo "{$strBrowse} {$strTable}: {$table}"; ?> "></a> <a class="item" target="main" HREF="tbl_properties.php?server=<?php echo $server;
echo $strDrop; ?> </td> <?php } ?> </tr> <?php } echo "</table>\n"; } break; default: // Tables $sql_get_tables = "SELECT tablename, tableowner FROM pg_tables WHERE tablename NOT LIKE 'pg%' ORDER BY tablename"; $tables = @pg_exec($link, $sql_get_tables) or pg_die(pg_errormessage(), $sql_get_tables, __FILE__, __LINE__); $num_tables = @pg_numrows($tables); if ($num_tables == 0) { echo "<br/><b>{$strNo} {$strTables} {$strFound}</b><br/>"; } else { $i = 0; echo "\n\t\t\t\t\t<table border={$cfgBorder}>\n\n\t\t\t\t\t\t<tr bgcolor=lightgrey>\n\t\t\t\t\t\t\t<th align=center>{$strTable}</th>\n\t\t\t\t\t\t\t<th align=center>{$strOwner}</th>\n\t\t\t\t"; if (!$printview) { echo "<th colspan=7>{$strAction}</th>"; } echo "\n\t\t\t\t\t\t\t<th>{$strRecords}</th>\n\t\t\t\t\t\t\t<th>Comments</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t"; while ($i < $num_tables) { $bgcolor = $cfgBgcolorOne; $i % 2 ? 0 : ($bgcolor = $cfgBgcolorTwo); $table = pg_result($tables, $i, 'tablename'); $owner = pg_result($tables, $i, 'tableowner');
if ($rep_action == "create") { $qrInsertRep = "INSERT INTO ppa_reports (report_name, db_name, created_by, descr, report_sql) VALUES ('{$rep_name}', '{$rep_db}', '{$PHP_PGADMIN_USER}', '{$rep_descr}', '{$rep_source}')"; $rsInsertRep = @pg_exec($link_rep, $qrInsertRep) or pg_die(pg_errormessage(), $qrInsertRep, __FILE__, __LINE__); $message = "{$strReport} '{$rep_name}' {$strHasBeenCreated}"; show_message($message); } elseif ($rep_action == "edit") { $qrUpdateRep = "UPDATE ppa_reports SET report_name ='{$rep_name}', db_name = '{$rep_db}', descr = '{$rep_descr}', report_sql = '{$rep_source}' WHERE report_id = {$rep_id}"; $rsUpdateRep = @pg_exec($link_rep, $qrUpdateRep) or pg_die(pg_errormessage(), $qrUpdateRep, __FILE__, __LINE__); $message = "{$strReport} '{$rep_name}' {$strHasBeenAltered}"; show_message($message); } $qrReports = "SELECT * FROM ppa_reports ORDER BY db_name, report_name"; if (!empty($dbname)) { $qrReports .= " WHERE db_name = '{$dbname}'"; } $rsReports = @pg_exec($link_rep, $qrReports) or pg_die(pg_errormessage(), $qrReports, __FILE__, __LINE__); $rnReports = @pg_numrows($rsReports); if ($rnReports > 0) { echo "\n\t\t\t<table border=\"{$cfgBorder}\">\n\t\t\t\t<tr bgcolor=\"lightgrey\">\n\t\t\t\t\t<th>{$strReportName}</th>\n\t\t\t\t\t<th>{$strDatabase}</th>\n\t\t\t\t\t<th>{$strDate}</th>\n\t\t\t\t\t<!--th>{$strDescription}</th-->\n\t\t\t\t\t<th colspan=\"4\">{$strAction}</th>\n\t\t\t\t</tr>\n\t\t"; $query = "?db={$db}&server={$server}&goto=" . urlencode("reports.php"); for ($intReports = 0; $intReports < $rnReports; $intReports++) { $bgcolor = $cfgBgcolorOne; $intReports % 2 ? 0 : ($bgcolor = $cfgBgcolorTwo); $rep_row = @pg_fetch_array($rsReports, $intReports); $rep_query = "?server={$server}&db={$rep_row['db_name']}&goto=" . urlencode("reports.php"); echo "\n\t\t\t\t<tr bgcolor=\"{$bgcolor}\">\n\t\t\t\t\t<td class=\"data\"><b>{$rep_row['report_name']}</b></td>\n\t\t\t\t\t<td class=\"data\">{$rep_row['db_name']}</td>\n\t\t\t\t\t<td class=\"data\">{$rep_row['date_created']}</td>\n\t\t\t\t\t<!--td class=\"data\">{$rep_row['descr']}</td-->\n\t\t\t\t\t<td class=\"data\">\n\t\t\t\t\t\t<a href=\"rep_properties.php{$query}&rep_id={$rep_row['report_id']}\">{$strProperties}</a>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td class=\"data\">\n\t\t\t\t\t\t<a href=\"rep_create.php{$query}&rep_id={$rep_row['report_id']}\">{$strChange}</a>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td class=\"data\">\n\t\t\t\t\t\t<a href=\"sql.php{$query}&sql_query=" . urlencode("DELETE FROM ppa_reports WHERE report_id = {$rep_row['report_id']}") . "&zero_rows=" . urlencode("{$strReport} {$rep_row['report_name']} {$strHasBeenDropped}") . "\">{$strDrop}</a>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td class=\"data\">\n\t\t\t\t\t\t<a href=\"sql.php{$rep_query}&sql_query=" . urlencode($rep_row[report_sql]) . "\">{$strRun}</a>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t"; } echo "</table>"; } else { echo "{$strNo} {$strReports} {$strFound}"; }
</a></td> <?php } // end print view ?> </tr> <?php } ?> </table> <?php } $sql_pri_keys = "\n\t\tSELECT \n\t\t\tic.relname AS index_name, \n\t\t\tbc.relname AS tab_name, \n\t\t\tta.attname AS column_name,\n\t\t\ti.indisunique AS unique_key,\n\t\t\ti.indisprimary AS primary_key\n\t\tFROM \n\t\t\tpg_class bc,\n\t\t\tpg_class ic,\n\t\t\tpg_index i,\n\t\t\tpg_attribute ta,\n\t\t\tpg_attribute ia\n\t\tWHERE \n\t\t\tbc.oid = i.indrelid\n\t\t\tAND ic.oid = i.indexrelid\n\t\t\tAND ia.attrelid = i.indexrelid\n\t\t\tAND ta.attrelid = bc.oid\n\t\t\tAND bc.relname = '{$table}'\n\t\t\tAND ta.attrelid = i.indrelid\n\t\t\tAND ta.attnum = i.indkey[ia.attnum-1]\n\t\tORDER BY \n\t\t\tindex_name, tab_name, column_name\n\t"; // echo $sql_pri_keys; if (!($pri_result = pg_exec($link, pre_query($sql_pri_keys)))) { pg_die(pg_errormessage(), $sql_pri_keys, __FILE__, __LINE__); } else { $num_keys = @pg_numrows($pri_result); // echo "Num keys: ", $num_keys; if ($num_keys > 0) { ?> <br> <table border=<?php echo $cfgBorder; ?> > <tr> <th><?php echo $strKeyname; ?> </th>
<?php if (!isset($message)) { include "header.inc.php"; } else { show_message($message); } $sql_operator_props = "\n\tSELECT\n po.oid,\n po.oprname,\n po.oprcanhash,\n po.oprcode,\n po.oprrest,\n po.oprjoin,\n po.oprcom,\n po.oprnegate,\n po.oprlsortop as oprlsortop_orig,\n po.oprrsortop as oprrsortop_orig,\n\t\t(select typname from pg_type pt where pt.oid=po.oprleft) as leftarg,\n\t\t(select typname from pg_type pt where pt.oid=po.oprright) as rightarg,\n\t\t(select oprname from pg_operator po1 where po1.oid=po.oprcom) as commutator,\n\t\t(select oprname from pg_operator po1 where po1.oid=po.oprnegate) as negator,\n (select oprname from pg_operator po1 where po1.oid=po.oprlsortop) as oprlsortop,\n (select oprname from pg_operator po1 where po1.oid=po.oprrsortop) as oprrsortop,\n\t\t(select typname from pg_type pt where pt.oid=po.oprresult) as result\n\tFROM\n\t\tpg_operator po\n\tWHERE\n\t\tpo.oid = '{$operator_oid}'\n"; if (!($res_props = pg_exec($link, pre_query($sql_operator_props)))) { pg_die(pg_errormessage(), $sql_operator_props, __FILE__, __LINE__); } else { $row = @pg_fetch_array($res_props, 0); // Construct operator link $query = "?db={$db}&server={$server}&rel_type=operator&operator_oid=%s"; $op = "<a href=\"oper_properties.php{$query}\">%s</a>"; $pr_query = "?db={$db}&rel_type=operator&server={$server}"; ?> <table border=<?php echo $cfgBorder; ?> > <TR> <TH><?php echo $strProperty; ?> </TH> <TH><?php echo $strValue; ?> </TH> </TR>
$tmp[0] = '('; $qrUsers .= " WHERE groname NOT IN {$tmp})"; } $qrUsers .= " ORDER BY thename"; } else { $qrUsers = "SELECT 'public'::text AS thename UNION SELECT '{$cfgQuotes}' || usename || '{$cfgQuotes}' AS thename FROM pg_user WHERE usename NOT IN ('root', '{$cfgSuperUser}'"; @reset($privileges); while (list($key) = @each($privileges)) { if (!ereg("group ", $key)) { $qrUsers .= ", '{$key}'"; } } $qrUsers .= ") ORDER BY thename"; } if (!empty($qrUsers)) { $res = @pg_exec($link, $qrUsers) or pg_die(pg_errormessage($link), $qrUsers, __FILE__, __LINE__); $name = '<select name="user">'; $num_rows = pg_numrows($res); for ($i = 0; $i < $num_rows; $i++) { $row = pg_fetch_array($res, $i); $name .= '<option value="' . rawurlencode($row['thename']) . '">' . $row['thename'] . "</option>"; } $name .= "</select>\n"; } unset($action); ?> <form method="post" action="db_privilege.php"> <p><?php echo $Action; ?>
echo "<table border={$cfgBorder}>\n\t\t\t\t<form method=\"post\">\n\t\t"; $qrGroups = "SELECT groname, grolist, grosysid FROM pg_group WHERE groname = '{$groname}' ORDER BY groname"; $rsGroups = @pg_exec($link, pre_query($qrGroups)); $aryGroups = pg_fetch_array($rsGroups, 0); $members = $aryGroups[grolist]; $members = ereg_replace("\\{|\\}", "", $members); echo "\n\t\t\t<tr><th colspan=\"2\">{$strGroup}: {$aryGroups['groname']}</th><th>{$strGroupModify}</th></tr>\n\t\t\t<tr bgcolor={$cfgMember}><td colspan=\"3\"><b>{$strMember}</b></td></tr>\n\t\t"; if (!empty($members)) { $strCheckMem = "usesysid NOT IN ({$members}) AND "; $qMember = "SELECT usename, 1 as dummy, usesysid \n\t\t\t FROM pg_user \n\t\t\t\t\t\tWHERE usesysid in ({$members}) AND \n\t\t\t\t\t\t usename NOT IN ('root', '{$cfgSuperUser}')\n\t\t\t"; $rsMember = pg_exec($link, pre_query($qMember)) or pg_die(pg_errormessage($link), $qMember, __FILE__, __LINE__); $nMemRows = pg_numrows($rsMember); } $qNon = "SELECT usename, 0 as dummy, usesysid \n\t\t\t\t\tFROM pg_user \n\t\t\t\t\tWHERE {$strCheckMem} \n\t\t\t\t\t\t usename NOT IN ('root', '{$cfgSuperUser}')\n \t\t\t\t ORDER BY dummy, usename\n\t\t"; // echo $qNon, "<br>"; $rsNon = pg_exec($link, pre_query($qNon)) or pg_die(pg_errormessage($link), $qNon, __FILE__, __LINE__); $nNonRows = pg_numrows($rsNon); for ($iMem = 0; $iMem < $nMemRows; $iMem++) { $bgcolor = $cfgBgcolorOne; $iMem % 2 ? 0 : ($bgcolor = $cfgBgcolorTwo); $aryMem = pg_fetch_array($rsMember, $iMem); echo "\n\t\t\t\t<tr bgcolor={$bgcolor}>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td>{$aryMem['usename']}</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<input name=\"mem[{$aryMem['usesysid']}]\" value=\"{$aryMem['usename']}\" type=checkbox>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t"; } echo "<tr bgcolor=\"{$cfgNonMember}\"><td colspan=3><b>{$strNonMember}</b></td></tr>"; for ($iNon = 0; $iNon < $nNonRows; $iNon++) { $bgcolor = $cfgBgcolorOne; $iNon % 2 ? 0 : ($bgcolor = $cfgBgcolorTwo); $aryNon = pg_fetch_array($rsNon, $iNon); echo "\n\t\t\t\t<tr bgcolor={$bgcolor}>\n\t\t\t\t\t<td> </td>\n\t\t\t\t\t<td>{$aryNon['usename']}</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<input name=\"non[{$aryNon['usesysid']}]\" value=\"{$aryNon['usename']}\" type=checkbox>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t"; } echo "\n\t\t\t\t<tr><td colspan=3> </td></tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan=3>\n\t\t\t\t\t\t<input type=\"submit\" value=\"{$strGroupModify}\">\n\t\t\t\t\t\t<input type=\"button\" value=\"{$strCancel}\" onClick=\"history.back()\">\n\t\t\t\t\t\t<input type=\"hidden\" name=\"todo\" value=\"modify\">\n\t\t\t\t\t\t<input type=\"hidden\" name=\"save_action\" value=\"1\">\n\t\t\t\t\t\t<input type=\"hidden\" name=\"groname\" value=\"{$groname}\">\n\t\t\t\t\t\t<input type=\"hidden\" name=\"server\" value=\"{$server}\">\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t\t</form>\n\t\t\t</table>\n\t\t";
$client = getenv("HTTP_USER_AGENT"); if (ereg('[^(]*\\((.*)\\)[^)]*', $client, $regs)) { $os = $regs[1]; // this looks better under WinX if (eregi("Win", $os)) { $crlf = "\r\n"; } } $drop_field = $field; $create_table = get_table_def($link, $table, $crlf); unset($sql_query); $exec_query = "CREATE TABLE {$cfgQuotes}{$new_table}{$cfgQuotes} AS SELECT {$strFieldList} FROM {$cfgQuotes}{$table}{$cfgQuotes}"; pg_exec($link, pre_query($exec_query)) or pg_die(pg_errormessage(), $exec_query, __FILE__, __LINE__); $sql_query .= $exec_query . ";\n"; $exec_query = "DROP TABLE {$cfgQuotes}{$table}{$cfgQuotes}"; pg_exec($link, pre_query($exec_query)) or pg_die(pg_errormessage(), $exec_query, __FILE__, __LINE__); $sql_query .= $exec_query . ";\n"; $exec_query = $create_table; pg_exec($link, pre_query($exec_query)) or pg_die(pg_errormessage(), $exec_query, __FILE__, __LINE__); $sql_query .= $exec_query; $exec_query = "INSERT INTO {$cfgQuotes}{$table}{$cfgQuotes} SELECT * FROM {$cfgQuotes}{$new_table}{$cfgQuotes}"; pg_exec($link, pre_query($exec_query)) or pg_die(pg_errormessage(), $exec_query, __FILE__, __LINE__); $sql_query .= $exec_query . ";\n"; $exec_query = "DROP TABLE {$cfgQuotes}{$new_table}{$cfgQuotes}"; pg_exec($link, pre_query($exec_query)) or pg_die(pg_errormessage(), $exec_query, __FILE__, __LINE__); $sql_query .= $exec_query . ";\n"; $message = "{$strTable} {$table} {$strHasBeenAltered}"; include "tbl_properties.php"; exit; } include "footer.inc.php";
/* $Id: rep_create.php,v 1.2 2001/02/02 06:03:08 dwilson Exp $ */ // File: rep_create.php // Purpose: Create Report // Author: Dan Wilson // Date: 05 Dec 2000 include "lib.inc.php"; include "header.inc.php"; echo "<h1>{$strReports}</h1>"; $qrGetDB = "SELECT datname FROM pg_database WHERE datname NOT IN ('phppgadmin', 'template1') ORDER BY datname"; $rsGetDB = @pg_exec($link, $qrGetDB) or pg_die(pg_errormessage(), $qrGetDB, __FILE__, __LINE__); $nmGetDB = pg_numrows($rsGetDB); for ($intDB = 0; $intDB < $nmGetDB; $intDB++) { $arDB[] = pg_result($rsGetDB, $intDB, "datname"); } if (isset($rep_id)) { $qrGetRep = "SELECT * FROM ppa_reports WHERE report_id = {$rep_id}"; $rsGetRep = @pg_exec($link, $qrGetRep) or pg_die(pg_errormessage(), $qrGetRep, __FILE__, __LINE__); if (pg_numrows($rsGetRep) > 0) { $rep_row = pg_fetch_array($rsGetRep, 0); } $strRepAction = "edit"; $strSubmitTxt = $strUpdate; } else { $rep_row[db_name] = $db_name; $rep_row[report_sql] = stripslashes($rep_sql); $strRepAction = "create"; $strSubmitTxt = $strCreate; } $strSelGetDB = select_box(array("name" => "rep_db", "values" => $arDB, "selected" => $rep_row[db_name])); echo "\n\t<form action=\"reports.php\" method=\"POST\">\n\t<table border=\"{$cfgBorder}\">\n\t<tr>\n\t\t<td>{$strReportName}:</td>\n\t\t<td>\n\t\t\t<input type=\"text\" name=\"rep_name\" value=\"{$rep_row['report_name']}\" maxlength=\"50\" size=\"50\">\n\t\t</td>\n\t</tr>\n\t<tr>\n\t\t<td>{$strDatabase}:</td>\n\t\t<td>{$strSelGetDB}</td>\n\t</tr>\n\t<tr>\n\t\t<td valign=\"top\">{$strDescription}:</td>\n\t\t<td>\n\t\t\t<textarea name=\"rep_descr\" wrap=\"virtual\" style=\"width:{$cfgMaxInputsize};\" rows=\"3\">{$rep_row['descr']}</textarea>\n\t\t</td>\n\t</tr>\n\t<tr>\n\t\t<td valign=\"top\">{$strDefinition}:</td>\n\t\t<td>\n\t\t\t<textarea name=\"rep_source\" wrap=\"virtual\" style=\"width:{$cfgMaxInputsize};\" rows=\"5\">{$rep_row['report_sql']}</textarea>\n\t\t</td>\n\t</tr>\n\t<tr>\n\t\t<td align=\"center\" colspan=\"2\">\n\t\t\t<input type=\"submit\" name=\"submit_report\" value=\"{$strSubmitTxt}\">\n\t\t\t<input type=\"reset\" value=\"{$strReset}\">\n\t\t\t<input type=\"button\" value=\"{$strCancel}\" onClick=\"history.back();\">\n\t\t</td>\n\t</tr>\n\t<input type=\"hidden\" name=\"rep_action\" value=\"{$strRepAction}\">\n\t<input type=\"hidden\" name=\"rep_id\" value=\"{$rep_id}\">\n\t</form>\n"; include "footer.inc.php";
$pri_query = "\n\t\t\tSELECT \n\t\t\t\ta.attname AS column_name,\n\t\t\t\ti.indisunique AS unique_key,\n\t\t\t\ti.indisprimary AS primary_key\n\t\t\tFROM \n\t\t\t\tpg_class bc,\n\t\t\t\tpg_class ic,\n\t\t\t\tpg_index i,\n\t\t\t\tpg_attribute a\n\t\t\tWHERE \n\t\t\t\ti.indrelid = bc.oid\n\t\t\t\tand i.indexrelid = ic.oid\n\t\t\t\tand \n\t\t\t\t(\n\t\t\t\t\ti.indkey[0] = a.attnum \n\t\t\t\t\tor\n\t\t\t\t\ti.indkey[1] = a.attnum\n\t\t\t\t\tor\n\t\t\t\t\ti.indkey[2] = a.attnum\n\t\t\t\t\tor\n\t\t\t\t\ti.indkey[3] = a.attnum\n\t\t\t\t\tor\n\t\t\t\t\ti.indkey[4] = a.attnum\n\t\t\t\t\tor\n\t\t\t\t\ti.indkey[5] = a.attnum\n\t\t\t\t\tor\n\t\t\t\t\ti.indkey[6] = a.attnum\n\t\t\t\t\tor\n\t\t\t\t\ti.indkey[7] = a.attnum\n\t\t\t\t)\n\t\t\t\tand a.attrelid = bc.oid\n\t\t\t\tand i.indproc = '0'::oid\n\t\t\t\tand bc.relname = '{$table}'\n\t\t\t\tand (i.indisprimary = 't' or i.indisunique = 't')\n\t\t"; $pri_result = @pg_exec($link, pre_query($pri_query)) or pg_die(pg_errormessage(), $pri_query, __FILE__, __LINE__); $pri_num = @pg_numrows($pri_result); for ($i_pri_rows = 0; $i_pri_rows < $pri_num; $i_pri_rows++) { $my_pri_key = pg_result($pri_result, $i_pri_rows, "column_name"); // if (!eregi($my_pri_key, $sql_query)) { // Need to figure out a way to determine whether the primary key for the table has been selected // If not, then we need to pull it in. This is for use with the actions. // } $pri_keys[] = $my_pri_key; } $sql_query = isset($sql_query) ? stripslashes($sql_query) : ''; $sql_order = isset($sql_order) ? stripslashes($sql_order) : ''; if (!($result = @pg_exec($link, pre_query($sql_query . $sql_order)))) { include "header.inc.php"; pg_die(pg_errormessage($link), $sql_query . $sql_order, __FILE__, __LINE__); } $num_rows = @pg_numrows($result); } if ($num_rows < 1 || $rel_type == "sequence" && eregi($sql_query, "setval")) { if (eregi("delete|insert|update", $sql_query)) { $affected_rows = @pg_cmdtuples($result); } else { unset($affected_rows); } if (file_exists("./{$goto}")) { include "header.inc.php"; if (isset($zero_rows) && !empty($zero_rows)) { $message = $zero_rows; } else { $message = $strEmptyResultSet;
<?php /* $Id: trig_properties.php,v 1.3 2001/02/02 06:03:08 dwilson Exp $ */ if (!isset($message)) { include "header.inc.php"; } else { show_message($message); } $sql_trigger_props = "\n\tSELECT \n\t\tpt.oid,\n\t\tpt.*, \n\t\tpp.proname, \n\t\tpc.relname, \n\t\tpy.typname\n\tFROM \n\t\tpg_trigger pt, pg_proc pp, pg_class pc, pg_type py\n\tWHERE \n\t\tpp.oid = pt.tgfoid\n\t\tAND pt.tgtype = py.oid\n\t\tAND pt.tgrelid = pc.oid\n\t\tAND tgname = '{$trigger}'\n"; if (!($res_props = pg_exec($link, pre_query($sql_trigger_props)))) { pg_die(pg_errormessage(), $sql_trigger_props, __FILE__, __LINE__); } else { $row = @pg_fetch_array($res_props, 0); // Construct function definition $query = "?db={$db}&server={$server}&rel_type=function&function_oid={$row['tgfoid']}"; $fn = "<a href=\"func_properties.php{$query}\">" . $row[proname] . "</a>"; // Strip off trailing delimiter $tgargs = trim(substr($row[tgargs], 0, strlen($row[tgargs]) - 4)); $params = explode('\\000', $tgargs); for ($i = 0; $i < sizeof($params); $i++) { $params[$i] = str_replace("'", "\\'", $params[$i]); } $defn = implode("', '", $params); $tg_query = "?db={$db}&rel_type=trigger&server={$server}"; ?> <table border=<?php echo $cfgBorder; ?> > <TR> <TH><?php
<?php /* $Id: db_create.php,v 1.2 2001/02/02 06:03:08 dwilson Exp $ */ include "header.inc.php"; if (empty($goto)) { $goto = "db_details.php"; } $qrCreateDB = "CREATE DATABASE {$cfgQuotes}{$newdb}{$cfgQuotes}"; if (!@pg_exec($qrCreateDB)) { pg_die(pg_errormessage(), $qrCreateDB, __FILE__, __LINE__); } else { $message = "{$strDatabase} {$newdb} {$strHasBeenCreated}"; $db = $newdb; include $goto; }
if (empty($funcs[$key])) { $valuelist .= "{$val}, "; } else { // $val = str_replace("'", "\"", $val); $valuelist .= "{$funcs[$key]}(" . stripslashes($val) . "), "; } } $fieldlist = ereg_replace(", \$", "", $fieldlist); $valuelist = ereg_replace(", \$", "", $valuelist); $query = "INSERT INTO {$cfgQuotes}{$table}{$cfgQuotes} ({$fieldlist}) VALUES ({$valuelist})"; // echo $query, "<p>"; } $sql_query = $query; if (!($result = @pg_exec($link, pre_query($query)))) { include "header.inc.php"; pg_die(pg_errormessage(), $query, __FILE__, __LINE__); } else { if (eregi("delete|insert|update", $sql_query)) { $affected_rows = @pg_cmdtuples($result); } else { unset($affected_rows); } if (file_exists("./{$goto}")) { include "header.inc.php"; $message = $strModifications; include preg_replace('/\\.\\.*/', '.', $goto); } else { Header("Location: {$goto}"); } exit; }