Portions created by the Initial Developer are Copyright (C) 2008-2016 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes include "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; //check permissions if (permission_exists('exec_sql')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //pdo database connection if (strlen($_REQUEST['id']) > 0) { require_once "sql_query_pdo.php"; } if (count($_POST)>0) { $sql_type = trim($_POST["sql_type"]); $sql_cmd = trim($_POST["cmd"]); $table_name = trim($_POST["table_name"]); $header = "\n"; $header .= "\n"; $header .= ""; $header .= "\n"; $header .= "\n"; $footer = "\n"; $footer .= "\n"; if ($sql_type == '') { echo $header; $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; //determine queries to run and show if ($sql_cmd != '') { $sql_array = array_filter(explode(";", $sql_cmd)); } if ($table_name != '') { $sql_array[] = "select * from ".$table_name; } $show_query = (sizeof($sql_array) > 1) ? true : false; if (is_array($sql_array)) foreach($sql_array as $sql_index => $sql) { $sql = trim($sql); if (sizeof($sql_array) > 1 || $show_query) { if ($sql_index > 0) { echo "


"; } echo "".$sql.";
"; } $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); echo "".$text['label-records'].": ".count($result).""; echo "

\n"; } catch(PDOException $e) { echo "".$text['label-error'].""; echo "

\n"; echo $e->getMessage(); echo "

\n"; exit; } echo "\n"; $x = 0; if (is_array($result[0])) { foreach ($result[0] as $key => $value) { echo ""; $column_array[$x++] = $key; } } $x = 1; if (is_array($result)) { foreach ($result as &$row) { if ($x++ > 1000) { break; } echo "\n"; if (is_array($column_array)) { foreach ($column_array as $column_index => $column) { echo ""; } } echo "\n"; $c = ($c == 0) ? 1 : 0; } } echo "
".$key."
".$row[$column]." 
\n"; echo "
\n"; unset($result, $column_array); } echo $footer; } if ($sql_type == "inserts") { echo $header; $sql = trim($sql); //get the table data $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 "".$text['label-error']."\n"; echo "

\n"; echo "
".print_r($db->errorInfo(), true)."
\n"; echo "

\n"; exit; } $x = 0; if (is_array($result[0])) { foreach ($result[0] as $key => $value) { $column_array[$x++] = $key; } } $column_array_count = count($column_array); if (is_array($result)) foreach ($result as &$row) { 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'; } $x++; } } if (is_array($values) && sizeof($values) > 0) { echo implode(', ', $values); } echo ");
\n"; unset($columns, $values); } } echo $footer; } if ($sql_type == "csv") { //set the headers header('Content-type: application/octet-binary'); header('Content-Disposition: attachment; filename='.$table_name.'.csv'); //get the table data $sql = trim($sql); $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 "".$text['label-error']."\n"; echo "

\n"; echo "
".print_r($db->errorInfo(), true)."
\n"; echo "

\n"; exit; } $x = 0; if (is_array($result[0])) { foreach ($result[0] as $key => $value) { $column_array[$x++] = $key; } } //column names echo '"'.implode('","', $column_array).'"'."\r\n"; //column values if (is_array($result)) { foreach ($result as &$row) { $x = 1; foreach ($column_array as $column) { echo '"'.check_str($row[$column]).'"'.(($x++ < count($column_array)) ? ',' : null); } echo "\n"; } } } } } ?>