Command: Database class integration.

This commit is contained in:
Nate 2019-08-06 17:35:45 -06:00
parent 6fe372b3d4
commit ebfec8c31f
5 changed files with 134 additions and 152 deletions

View File

@ -259,13 +259,15 @@
case 'pgsql': $sql = "select table_name as name from information_schema.tables where table_schema='public' and table_type='BASE TABLE' order by table_name"; break;
case 'mysql': $sql = "show tables"; break;
}
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$row = array_values($row);
echo " <option value='".escape($row[0])."'>".escape($row[0])."</option>\n";
$database = new database;
$result = $database->select($sql, null, 'all');
if (is_array($result) && @sizeof($result) != 0) {
foreach ($result as &$row) {
$row = array_values($row);
echo " <option value='".escape($row[0])."'>".escape($row[0])."</option>\n";
}
}
unset($sql, $result, $row);
echo " </select>\n";
//echo " <br /><br />\n";
//echo " ".$text['label-result_type']."<br />";
@ -366,21 +368,21 @@
<td valign='middle' style='padding-left: 4px; padding-right: 0px;'>
<select id='theme' style='height: 23px;' onchange="editor.setTheme('ace/theme/' + this.options[this.selectedIndex].value); focus_editor();">
<?php
$themes['Bright']['chrome']= 'Chrome';
$themes['Bright']['clouds']= 'Clouds';
$themes['Bright']['crimson_editor']= 'Crimson Editor';
$themes['Bright']['dawn']= 'Dawn';
$themes['Bright']['dreamweaver']= 'Dreamweaver';
$themes['Bright']['eclipse']= 'Eclipse';
$themes['Bright']['github']= 'GitHub';
$themes['Bright']['iplastic']= 'IPlastic';
$themes['Bright']['solarized_light']= 'Solarized Light';
$themes['Bright']['textmate']= 'TextMate';
$themes['Bright']['tomorrow']= 'Tomorrow';
$themes['Bright']['xcode']= 'XCode';
$themes['Bright']['kuroir']= 'Kuroir';
$themes['Bright']['katzenmilch']= 'KatzenMilch';
$themes['Bright']['sqlserver']= 'SQL Server';
$themes['Light']['chrome']= 'Chrome';
$themes['Light']['clouds']= 'Clouds';
$themes['Light']['crimson_editor']= 'Crimson Editor';
$themes['Light']['dawn']= 'Dawn';
$themes['Light']['dreamweaver']= 'Dreamweaver';
$themes['Light']['eclipse']= 'Eclipse';
$themes['Light']['github']= 'GitHub';
$themes['Light']['iplastic']= 'IPlastic';
$themes['Light']['solarized_light']= 'Solarized Light';
$themes['Light']['textmate']= 'TextMate';
$themes['Light']['tomorrow']= 'Tomorrow';
$themes['Light']['xcode']= 'XCode';
$themes['Light']['kuroir']= 'Kuroir';
$themes['Light']['katzenmilch']= 'KatzenMilch';
$themes['Light']['sqlserver']= 'SQL Server';
$themes['Dark']['ambiance']= 'Ambiance';
$themes['Dark']['chaos']= 'Chaos';
$themes['Dark']['clouds_midnight']= 'Clouds Midnight';
@ -416,7 +418,7 @@
</table>
<div id='editor'><?php echo escape($command); ?></div>
<?php
<?php
echo " </td>";
echo " </tr>\n";
echo "</table>";

View File

@ -90,8 +90,8 @@
//get the list of tables
if ($db_type == "sqlite") {
$sql = "SELECT name FROM sqlite_master ";
$sql .= "WHERE type='table' ";
$sql = "select name from sqlite_master ";
$sql .= "where type='table' ";
$sql .= "order by name;";
}
if ($db_type == "pgsql") {
@ -104,78 +104,50 @@
if ($db_type == "mysql") {
$sql = "show tables";
}
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$row = array_values($row);
$table_name = $row[0];
$database = new database;
$result_1 = $database->select($sql, null, 'all');
unset($sql);
//get the table data
$sql = "select * from $table_name";
if (strlen($sql) > 0) {
$prep_statement_2 = $db->prepare(check_sql($sql));
if ($prep_statement_2) {
$prep_statement_2->execute();
$result2 = $prep_statement_2->fetchAll(PDO::FETCH_ASSOC);
}
else {
echo "<b>".$text['label-error'].":</b>\n";
echo "<pre>\n";
print_r($db->errorInfo());
echo "</pre>\n";
}
if (is_array($result_1) && @sizeof($result_1) != 0) {
foreach ($result_1 as &$row_1) {
$row_1 = array_values($row_1);
$table_name = $row_1[0];
$x = 0;
foreach ($result2[0] as $key => $value) {
if ($row[$column] != "db") {
//get the table data
$sql = "select * from ".$table_name;
$database = new database;
$result_2 = $database->select($sql, null, 'all');
unset($sql);
foreach ($result_2[0] as $key => $value) {
if ($row_1[$column] != "db") {
if (field_exists($apps, $table_name, $key)) {
$column_array[$x] = $key;
$column_array[] = $key;
}
$x++;
}
}
$column_array_count = count($column_array);
foreach ($result2 as &$row) {
$sql = "INSERT INTO $table_name (";
$x = 1;
foreach ($result_2 as &$row_2) {
foreach ($column_array as $column) {
if ($x < $column_array_count) {
if (strlen($row[$column]) > 0) {
$sql .= ''.$column.',';
}
}
else {
if (strlen($row[$column]) > 0) {
$sql .= ''.$column.'';
}
}
$x++;
$columns[] = $column;
$values[] = $row_2[$column] != '' ? "'".check_str($row_2[$column])."'" : 'null';
}
$sql .= ") ";
$sql .= "VALUES( ";
$x = 1;
foreach ($column_array as $column) {
if ($x < $column_array_count) {
if (strlen($row[$column])> 0) {
$sql .= "'".check_str($row[$column])."',";
}
}
else {
if (strlen($row[$column])> 0) {
$sql .= "'".check_str($row[$column])."'";
}
}
$x++;
}
$sql .= ");\n";
echo str_replace(",)", ")", $sql);
$sql = "insert into ".$table_name." (";
$sql .= implode(', ', $columns);
$sql .= ") values ( ";
$sql .= implode(', ', $values);
$sql .= ");";
echo $sql."\n";
unset($columns, $values);
}
}
unset($result_2, $row_2);
unset($column_array);
unset($column_array);
}
}
unset($result_1, $row_1);
?>
?>

View File

@ -73,14 +73,9 @@
echo "</table>\n";
//prepare to page the results
$sql = "select count(*) as num_rows from v_databases ";
if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
$prep_statement = $db->prepare($sql);
if ($prep_statement) {
$prep_statement->execute();
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
$num_rows = ($row['num_rows'] > 0) ? $row['num_rows'] : '0';
}
$sql = "select count(*) from v_databases ";
$database = new database;
$num_rows = $database->select($sql, null, 'column');
//prepare to page the results
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
@ -91,14 +86,12 @@
$offset = $rows_per_page * $page;
//get the list
$sql = "select * from v_databases ";
if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
$sql .= "limit $rows_per_page offset $offset ";
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
$result_count = count($result);
unset ($prep_statement, $sql);
$sql = str_replace('count(*)', '*', $sql);
$sql .= order_by($order_by, $order);
$sql .= limit_offset($rows_per_page, $offset);
$database = new database;
$result = $database->select($sql, null, 'all');
unset($sql);
$c = 0;
$row_style["0"] = "row_style0";
@ -113,7 +106,7 @@
echo "<td class='list_control_icons' style='width: 25px;'>&nbsp;</td>\n";
echo "<tr>\n";
if (is_array($result)) {
if (is_array($result) && @sizeof($result) != 0) {
foreach($result as $row) {
$tr_link = "href='exec.php?id=".escape($row['database_uuid'])."'";
echo "<tr ".$tr_link.">\n";
@ -126,9 +119,9 @@
echo " </td>\n";
echo "</tr>\n";
$c = ($c == 0) ? 1 : 0;
} //end foreach
unset($sql, $result, $row_count);
} //end if results
}
}
unset($result, $row);
echo "</table>";
echo "<br><br>";

View File

@ -45,13 +45,13 @@
}
//get the db connection information
if (strlen($_REQUEST['id']) > 0) {
if (is_uuid($_REQUEST['id'])) {
$sql = "select * from v_databases ";
$sql .= "where database_uuid = '".$_REQUEST['id']."' ";
$prep_statement = $db->prepare($sql);
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
foreach ($result as &$row) {
$sql .= "where database_uuid = :database_uuid ";
$parameters['database_uuid'] = $_REQUEST['id'];
$database = new database;
$row = $database->select($sql, $parameters, 'row');
if (is_array($row) && @sizeof($row) != 0) {
$db_type = $row["database_type"];
$db_host = $row["database_host"];
$db_port = $row["database_port"];
@ -59,8 +59,8 @@
$db_username = $row["database_username"];
$db_password = $row["database_password"];
$db_path = $row["database_path"];
break;
}
unset($sql, $parameters, $row);
}
//unset the database connection

View File

@ -114,7 +114,6 @@
$header .= " text-align: left;\n";
$header .= " vertical-align: top;\n";
$header .= "}\n";
$header .= "\n";
$header .= "</style>";
$header .= "</head>\n";
$header .= "<body style='margin: 0; padding: 8;'>\n";
@ -141,46 +140,56 @@
if (sizeof($sql_array) > 1 || $show_query) {
if ($sql_index > 0) { echo "<br /><br /><br />"; }
echo "<span style='display: block; padding: 8px; color: green; background-color: #eefff0;'>".escape($sql).";</span><br />";
echo "<span style='display: block; font-family: monospace; padding: 8px; color: green; background-color: #eefff0;'>".escape($sql).";</span><br />";
}
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$prep_statement = $db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
$database = new database;
$result = $database->execute($sql, null, 'all');
$message = $database->message;
if ($message['message'] == 'OK' && $message['code'] == 200) {
echo "<b>".$text['label-records'].": ".count($result)."</b>";
echo "<br /><br />\n";
}
catch(PDOException $e) {
else {
echo "<b>".$text['label-error']."</b>";
echo "<br /><br />\n";
echo $e->getMessage();
echo "<br /><br />\n";
echo $message['message'].' ['.$message['code']."]<br />\n";
if (is_array($message['error']) && @sizeof($message['error']) != 0) {
foreach ($message['error'] as $error) {
echo "<pre>".$error."</pre><br /><br />\n";
}
}
exit;
}
echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
$x = 0;
if (is_array($result[0])) {
echo "<thead>\n";
echo " <tr>\n";
foreach ($result[0] as $key => $value) {
echo "<th>".escape($key)."</th>";
echo "<th>".escape($key)."</th>\n";
$column_array[$x++] = $key;
}
echo " </tr>\n";
echo "</thead>\n";
}
$x = 1;
if (is_array($result)) {
echo "<tbody>\n";
foreach ($result as &$row) {
if ($x++ > 1000) { break; }
echo "<tr>\n";
if (is_array($column_array)) {
foreach ($column_array as $column_index => $column) {
echo "<td class='".$row_style[$c]."' ".(($column_index == 0) ? "style='border-left: none;'" : null).">".escape($row[$column])."&nbsp;</td>";
echo "<td class='".$row_style[$c]."' ".(($column_index == 0) ? "style='border-left: none;'" : null).">".escape($row[$column])."&nbsp;</td>\n";
}
}
echo "</tr>\n";
$c = ($c == 0) ? 1 : 0;
}
echo "</tbody>\n";
}
echo "</table>\n";
echo "<br>\n";
@ -199,19 +208,22 @@
$sql = (strlen($sql_cmd) == 0) ? "select * from ".$table_name : $sql_cmd;
if (strlen($sql) > 0) {
$prep_statement = $db->prepare(check_sql($sql));
if ($prep_statement) {
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
}
else {
echo "<b>".$text['label-error']."</b>\n";
echo "<br /><br />\n";
echo "<pre>".print_r($db->errorInfo(), true)."</pre>\n";
$database = new database;
$result = $database->execute($sql);
$message = $database->message;
if ($message['message'] != 'OK' || $message['code'] != 200) {
echo "<b>".$text['label-error']."</b>";
echo "<br /><br />\n";
echo $message['message'].' ['.$message['code']."]<br />\n";
if (is_array($message['error']) && @sizeof($message['error']) != 0) {
foreach ($message['error'] as $error) {
echo "<pre>".$error."</pre><br /><br />\n";
}
}
exit;
}
$x = 0;
if (is_array($result[0])) {
foreach ($result[0] as $key => $value) {
@ -220,36 +232,36 @@
}
$column_array_count = count($column_array);
if (is_array($result)) foreach ($result as &$row) {
if (is_array($result)) foreach ($result as $index => &$row) {
echo "<div style='font-family: monospace; border-bottom: 1px solid #ccc; padding-bottom: 8px; ".($index != 0 ? 'padding-top: 8px;' : null)."'>\n";
echo "insert into ".$table_name." (";
$x = 1;
if (is_array($column_array)) {
foreach ($column_array as $column) {
if ($column != "menuid" && $column != "menuparentid") {
$columns[] = $column;
}
$x++;
}
}
if (is_array($columns) && sizeof($columns) > 0) {
echo implode(', ', $columns);
}
echo ") values (";
$x = 1;
if (is_array($column_array)) {
foreach ($column_array as $column) {
if ($column != "menuid" && $column != "menuparentid") {
$values[] = ($row[$column] != '') ? "'".check_str($row[$column])."'" : 'null';
$values[] = $row[$column] != '' ? "'".escape($row[$column])."'" : 'null';
}
$x++;
}
}
if (is_array($values) && sizeof($values) > 0) {
echo implode(', ', escape($values));
echo implode(', ', $values);
}
echo ");<br />\n";
echo ");\n";
echo "</div>\n";
unset($columns, $values);
}
}
echo $footer;
}
@ -273,16 +285,19 @@
$sql = "select * from ".$table_name;
}
if (strlen($sql) > 0) {
$prep_statement = $db->prepare(check_sql($sql));
if ($prep_statement) {
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_ASSOC);
}
else {
echo "<b>".$text['label-error']."</b>\n";
echo "<br /><br />\n";
echo "<pre>".print_r($db->errorInfo(), true)."</pre>\n";
$database = new database;
$result = $database->execute($sql);
$message = $database->message;
if ($message['message'] != 'OK' || $message['code'] != 200) {
echo "<b>".$text['label-error']."</b>";
echo "<br /><br />\n";
echo $message['message'].' ['.$message['code']."]<br />\n";
if (is_array($message['error']) && @sizeof($message['error']) != 0) {
foreach ($message['error'] as $error) {
echo "<pre>".$error."</pre><br /><br />\n";
}
}
exit;
}