Thread: [adminer-svn] SF.net SVN: adminer:[1445] branches/sqlite/adminer (Page 2)
Database management in a single PHP file
Brought to you by:
jakubvrana
From: <jak...@us...> - 2010-04-16 12:49:51
|
Revision: 1445 http://adminer.svn.sourceforge.net/adminer/?rev=1445&view=rev Author: jakubvrana Date: 2010-04-16 12:49:45 +0000 (Fri, 16 Apr 2010) Log Message: ----------- Common DB info Modified Paths: -------------- branches/sqlite/adminer/drivers/mssql.inc.php branches/sqlite/adminer/drivers/mysql.inc.php branches/sqlite/adminer/drivers/pgsql.inc.php branches/sqlite/adminer/drivers/sqlite.inc.php branches/sqlite/adminer/include/connect.inc.php Modified: branches/sqlite/adminer/drivers/mssql.inc.php =================================================================== --- branches/sqlite/adminer/drivers/mssql.inc.php 2010-04-15 15:06:09 UTC (rev 1444) +++ branches/sqlite/adminer/drivers/mssql.inc.php 2010-04-16 12:49:45 UTC (rev 1445) @@ -258,10 +258,9 @@ return array(); } - function db_info() { + function logged_user() { global $connection; - echo "<p>" . lang('%s version: %s through PHP extension %s', "MS SQL", "<b>$connection->server_info</b>", "<b>$connection->extension</b>") . "\n"; - echo "<p>" . lang('Logged as: %s', "<b>" . h($connection->result("SELECT SUSER_NAME()")) . "</b>") . "\n"; + return $connection->result("SELECT SUSER_NAME()"); } function tables_list() { Modified: branches/sqlite/adminer/drivers/mysql.inc.php =================================================================== --- branches/sqlite/adminer/drivers/mysql.inc.php 2010-04-15 15:06:09 UTC (rev 1444) +++ branches/sqlite/adminer/drivers/mysql.inc.php 2010-04-16 12:49:45 UTC (rev 1445) @@ -307,21 +307,12 @@ return $return; } - /** Print links and information about the database - * @return null + /** Get logged user + * @return string */ - function db_info() { + function logged_user() { global $connection; - foreach (array( - 'privileges' => lang('Privileges'), - 'processlist' => lang('Process list'), - 'variables' => lang('Variables'), - 'status' => lang('Status'), - ) as $key => $val) { - echo "<a href='" . h(ME) . "$key='>$val</a>\n"; - } - echo "<p>" . lang('%s version: %s through PHP extension %s', "MySQL", "<b" . ($connection->server_info < 4.1 ? " class='binary'" : "") . ">$connection->server_info</b>", "<b>$connection->extension</b>") . "\n"; - echo "<p>" . lang('Logged as: %s', "<b>" . h($connection->result("SELECT USER()")) . "</b>") . "\n"; + return $connection->result("SELECT USER()"); } /** Get tables list @@ -444,7 +435,7 @@ foreach ($matches as $match) { preg_match_all("~$pattern~", $match[2], $source); preg_match_all("~$pattern~", $match[5], $target); - $return[$match[1]] = array( + $return[idf_unescape($match[1])] = array( "db" => idf_unescape($match[4] != "" ? $match[3] : $match[4]), "table" => idf_unescape($match[4] != "" ? $match[4] : $match[3]), "source" => array_map('idf_unescape', $source[0]), Modified: branches/sqlite/adminer/drivers/pgsql.inc.php =================================================================== --- branches/sqlite/adminer/drivers/pgsql.inc.php 2010-04-15 15:06:09 UTC (rev 1444) +++ branches/sqlite/adminer/drivers/pgsql.inc.php 2010-04-16 12:49:45 UTC (rev 1445) @@ -171,9 +171,9 @@ return array(); } - function db_info() { + function logged_user() { global $connection; - echo "<p>" . lang('%s version: %s through PHP extension %s', "PostgreSQL", "<b>$connection->server_info</b>", "<b>$connection->extension</b>") . "\n"; + return $connection->result("SELECT user"); } function tables_list() { @@ -304,7 +304,6 @@ } function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) { - //! SELECT setval('sequence', $auto_increment) global $connection; $alter = array(); $queries = array(); @@ -346,6 +345,9 @@ if ($table != "" && $table != $name) { $queries[] = "ALTER TABLE " . idf_escape($table) . " RENAME TO " . idf_escape($name); } + if ($auto_increment != "") { + //! $queries[] = "SELECT setval(pg_get_serial_sequence(" . $connection->quote($name) . ", ), $auto_increment)"; + } foreach ($queries as $query) { if (!queries($query)) { return false; Modified: branches/sqlite/adminer/drivers/sqlite.inc.php =================================================================== --- branches/sqlite/adminer/drivers/sqlite.inc.php 2010-04-15 15:06:09 UTC (rev 1444) +++ branches/sqlite/adminer/drivers/sqlite.inc.php 2010-04-16 12:49:45 UTC (rev 1445) @@ -237,9 +237,8 @@ return array(); } - function db_info() { - global $connection; - echo "<p>" . lang('%s version: %s through PHP extension %s', "SQLite", "<b>$connection->server_info</b>", "<b>$connection->extension</b>") . "\n"; + function logged_user() { + return ""; //! OS user } function tables_list() { @@ -339,7 +338,7 @@ function view($name) { global $connection; - return array("select" => preg_replace('~^(?:[^`"]+|`[^`]*`|"[^"]*")* AS\\s+~iU', '', $connection->result("SELECT sql FROM sqlite_master WHERE name = " . $connection->quote($name)))); + return array("select" => preg_replace('~^(?:[^`"[]+|`[^`]*`|"[^"]*")* AS\\s+~iU', '', $connection->result("SELECT sql FROM sqlite_master WHERE name = " . $connection->quote($name)))); //! identifiers may be inside [] } function collations() { Modified: branches/sqlite/adminer/include/connect.inc.php =================================================================== --- branches/sqlite/adminer/include/connect.inc.php 2010-04-15 15:06:09 UTC (rev 1444) +++ branches/sqlite/adminer/include/connect.inc.php 2010-04-16 12:49:45 UTC (rev 1445) @@ -1,6 +1,6 @@ <?php function connect_error() { - global $connection, $VERSION, $token, $error; + global $connection, $VERSION, $token, $error, $drivers; $databases = array(); if (DB != "") { page_header(lang('Database') . ": " . h(DB), lang('Invalid database.'), true); @@ -17,7 +17,18 @@ page_header(lang('Select database'), $error, false); echo "<p><a href='" . h(ME) . "database='>" . lang('Create new database') . "</a>\n"; - db_info(); + foreach (array( + 'privileges' => lang('Privileges'), + 'processlist' => lang('Process list'), + 'variables' => lang('Variables'), + 'status' => lang('Status'), + ) as $key => $val) { + if (support($key)) { + echo "<a href='" . h(ME) . "$key='>$val</a>\n"; + } + } + echo "<p>" . lang('%s version: %s through PHP extension %s', $drivers[DRIVER], "<b>$connection->server_info</b>", "<b>$connection->extension</b>") . "\n"; + echo "<p>" . lang('Logged as: %s', "<b>" . h(logged_user()) . "</b>") . "\n"; $databases = get_databases(); if ($databases) { $collations = collations(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jak...@us...> - 2010-04-16 14:42:15
|
Revision: 1452 http://adminer.svn.sourceforge.net/adminer/?rev=1452&view=rev Author: jakubvrana Date: 2010-04-16 14:42:09 +0000 (Fri, 16 Apr 2010) Log Message: ----------- Data size in PostgreSQL Modified Paths: -------------- branches/sqlite/adminer/db.inc.php branches/sqlite/adminer/drivers/pgsql.inc.php Modified: branches/sqlite/adminer/db.inc.php =================================================================== --- branches/sqlite/adminer/db.inc.php 2010-04-16 14:34:47 UTC (rev 1451) +++ branches/sqlite/adminer/db.inc.php 2010-04-16 14:42:09 UTC (rev 1452) @@ -130,9 +130,10 @@ if ($table_status) { echo "<script type='text/javascript'>\n"; foreach ($table_status as $row) { - if (isset($row["Rows"])) { - $id = addcslashes($row["Name"], "\\'/"); - foreach (array("Engine", "Collation", "Comment") as $key) { + $id = addcslashes($row["Name"], "\\'/"); + echo "document.getElementById('Comment-$id').innerHTML = '" . nbsp($row["Comment"]) . "';\n"; + if (!eregi("view", $row["Engine"])) { + foreach (array("Engine", "Collation") as $key) { echo "document.getElementById('$key-$id').innerHTML = '" . nbsp($row[$key]) . "';\n"; } foreach ($sums + array("Auto_increment" => 0, "Rows" => 0) as $key => $val) { @@ -142,7 +143,7 @@ if (isset($sums[$key])) { $sums[$key] += ($row["Engine"] != "InnoDB" || $key != "Data_free" ? $row[$key] : 0); } - } else { + } elseif (array_key_exists($key, $row)) { echo "document.getElementById('$key-$id').parentNode.innerHTML = ' ';\n"; } } Modified: branches/sqlite/adminer/drivers/pgsql.inc.php =================================================================== --- branches/sqlite/adminer/drivers/pgsql.inc.php 2010-04-16 14:34:47 UTC (rev 1451) +++ branches/sqlite/adminer/drivers/pgsql.inc.php 2010-04-16 14:42:09 UTC (rev 1452) @@ -188,7 +188,7 @@ function table_status($name = "") { global $connection; $return = array(); - $result = $connection->query("SELECT relname AS \"Name\", CASE relkind WHEN 'r' THEN 'table' ELSE 'view' END AS \"Engine\", pg_catalog.obj_description(oid, 'pg_class') AS \"Comment\" FROM pg_catalog.pg_class WHERE relkind IN ('r','v')" . ($name != "" ? " AND relname = " . $connection->quote($name) : "")); + $result = $connection->query("SELECT relname AS \"Name\", CASE relkind WHEN 'r' THEN '' ELSE 'view' END AS \"Engine\", pg_relation_size(oid) AS \"Data_length\", pg_catalog.obj_description(oid, 'pg_class') AS \"Comment\" FROM pg_catalog.pg_class WHERE relkind IN ('r','v') AND relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'public')" . ($name != "" ? " AND relname = " . $connection->quote($name) : "")); //! Index_length, Auto_increment while ($row = $result->fetch_assoc()) { $return[$row["Name"]] = $row; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jak...@us...> - 2010-04-18 01:48:15
|
Revision: 1458 http://adminer.svn.sourceforge.net/adminer/?rev=1458&view=rev Author: jakubvrana Date: 2010-04-18 01:48:09 +0000 (Sun, 18 Apr 2010) Log Message: ----------- Introduce setHtml function Modified Paths: -------------- branches/sqlite/adminer/db.inc.php branches/sqlite/adminer/include/connect.inc.php branches/sqlite/adminer/static/functions.js Modified: branches/sqlite/adminer/db.inc.php =================================================================== --- branches/sqlite/adminer/db.inc.php 2010-04-18 00:25:19 UTC (rev 1457) +++ branches/sqlite/adminer/db.inc.php 2010-04-18 01:48:09 UTC (rev 1458) @@ -131,26 +131,26 @@ echo "<script type='text/javascript'>\n"; foreach ($table_status as $row) { $id = addcslashes($row["Name"], "\\'/"); - echo "document.getElementById('Comment-$id').innerHTML = '" . nbsp($row["Comment"]) . "';\n"; + echo "setHtml('Comment-$id', '" . nbsp($row["Comment"]) . "');\n"; if (!eregi("view", $row["Engine"])) { foreach (array("Engine", "Collation") as $key) { - echo "document.getElementById('$key-$id').innerHTML = '" . nbsp($row[$key]) . "';\n"; + echo "setHtml('$key-$id', '" . nbsp($row[$key]) . "');\n"; } foreach ($sums + array("Auto_increment" => 0, "Rows" => 0) as $key => $val) { if ($row[$key] != "") { $val = number_format($row[$key], 0, '.', lang(',')); - echo "document.getElementById('$key-$id').innerHTML = '" . ($key == "Rows" && $row["Engine"] == "InnoDB" && $val ? "~ $val" : $val) . "';\n"; + echo "setHtml('$key-$id', '" . ($key == "Rows" && $row["Engine"] == "InnoDB" && $val ? "~ $val" : $val) . "');\n"; if (isset($sums[$key])) { $sums[$key] += ($row["Engine"] != "InnoDB" || $key != "Data_free" ? $row[$key] : 0); } } elseif (array_key_exists($key, $row)) { - echo "document.getElementById('$key-$id').parentNode.innerHTML = ' ';\n"; + echo "setHtml('$key-$id');\n"; } } } } foreach ($sums as $key => $val) { - echo "document.getElementById('sum-$key').innerHTML = '" . number_format($val, 0, '.', lang(',')) . "';\n"; + echo "setHtml('sum-$key', '" . number_format($val, 0, '.', lang(',')) . "');\n"; } echo "</script>\n"; } Modified: branches/sqlite/adminer/include/connect.inc.php =================================================================== --- branches/sqlite/adminer/include/connect.inc.php 2010-04-18 00:25:19 UTC (rev 1457) +++ branches/sqlite/adminer/include/connect.inc.php 2010-04-18 01:48:09 UTC (rev 1458) @@ -51,7 +51,7 @@ page_footer("db"); echo "<script type='text/javascript'>\n"; foreach (count_tables($databases) as $db => $val) { - echo "document.getElementById('tables-" . addcslashes($db, "\\'/") . "').innerHTML = '$val';\n"; + echo "setHtml('tables-" . addcslashes($db, "\\'/") . "', '$val');\n"; } echo "</script>\n"; } Modified: branches/sqlite/adminer/static/functions.js =================================================================== --- branches/sqlite/adminer/static/functions.js 2010-04-18 00:25:19 UTC (rev 1457) +++ branches/sqlite/adminer/static/functions.js 2010-04-18 01:48:09 UTC (rev 1458) @@ -83,8 +83,23 @@ el.onclick && el.onclick(); } +/** Set HTML code of an element +* @param string +* @param string undefined to set parentNode to +*/ +function setHtml(id, html) { + var el = document.getElementById(id); + if (el) { + if (html == undefined) { + el.parentNode.innerHTML = ' '; + } else { + el.innerHTML = html; + } + } +} + /** Add row in select fieldset * @param HTMLSelectElement */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jak...@us...> - 2010-04-19 19:34:11
|
Revision: 1459 http://adminer.svn.sourceforge.net/adminer/?rev=1459&view=rev Author: jakubvrana Date: 2010-04-19 19:34:05 +0000 (Mon, 19 Apr 2010) Log Message: ----------- Column comment only if necessary Modified Paths: -------------- branches/sqlite/adminer/drivers/pgsql.inc.php branches/sqlite/adminer/include/editing.inc.php Modified: branches/sqlite/adminer/drivers/pgsql.inc.php =================================================================== --- branches/sqlite/adminer/drivers/pgsql.inc.php 2010-04-18 01:48:09 UTC (rev 1458) +++ branches/sqlite/adminer/drivers/pgsql.inc.php 2010-04-19 19:34:05 UTC (rev 1459) @@ -330,7 +330,7 @@ $alter[] = "ALTER $column " . ($val[2] == " NULL" ? "DROP NOT" : "SET") . $val[2]; } } - if ($table != "" || $val5 != " COMMENT ''") { + if ($table != "" || $val5 != "") { $queries[] = "COMMENT ON COLUMN " . idf_escape($table) . ".$val[0] IS " . substr($val5, 9); } } Modified: branches/sqlite/adminer/include/editing.inc.php =================================================================== --- branches/sqlite/adminer/include/editing.inc.php 2010-04-18 01:48:09 UTC (rev 1458) +++ branches/sqlite/adminer/include/editing.inc.php 2010-04-19 19:34:05 UTC (rev 1459) @@ -152,7 +152,7 @@ ($field["null"] ? " NULL" : " NOT NULL"), // NULL for timestamp (isset($field["default"]) ? " DEFAULT " . ($field["type"] == "timestamp" && eregi("^CURRENT_TIMESTAMP$", $field["default"]) ? $field["default"] : $connection->quote($field["default"])) : ""), ($field["on_update"] ? " ON UPDATE $field[on_update]" : ""), - (support("comment") ? " COMMENT " . $connection->quote($field["comment"]) : ""), + (support("comment") && $field["comment"] != "" ? " COMMENT " . $connection->quote($field["comment"]) : ""), ($field["auto_increment"] ? auto_increment() : ""), ); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jak...@us...> - 2010-04-20 21:42:26
|
Revision: 1460 http://adminer.svn.sourceforge.net/adminer/?rev=1460&view=rev Author: jakubvrana Date: 2010-04-20 21:42:20 +0000 (Tue, 20 Apr 2010) Log Message: ----------- Introduce ini_bool function Modified Paths: -------------- branches/sqlite/adminer/drivers/pgsql.inc.php branches/sqlite/adminer/include/auth.inc.php branches/sqlite/adminer/include/bootstrap.inc.php branches/sqlite/adminer/include/functions.inc.php branches/sqlite/adminer/sql.inc.php Modified: branches/sqlite/adminer/drivers/pgsql.inc.php =================================================================== --- branches/sqlite/adminer/drivers/pgsql.inc.php 2010-04-19 19:34:05 UTC (rev 1459) +++ branches/sqlite/adminer/drivers/pgsql.inc.php 2010-04-20 21:42:20 UTC (rev 1460) @@ -12,7 +12,7 @@ var $extension = "PgSQL", $_link, $_result, $_string, $_database = true, $server_info, $affected_rows, $error; function _error($errno, $error) { - if (ini_get("html_errors")) { + if (ini_bool("html_errors")) { $error = html_entity_decode(strip_tags($error)); } $error = ereg_replace('^[^:]*: ', '', $error); Modified: branches/sqlite/adminer/include/auth.inc.php =================================================================== --- branches/sqlite/adminer/include/auth.inc.php 2010-04-19 19:34:05 UTC (rev 1459) +++ branches/sqlite/adminer/include/auth.inc.php 2010-04-20 21:42:20 UTC (rev 1460) @@ -61,7 +61,7 @@ global $connection, $adminer, $token; $session_name = session_name(); $error = ""; - if (!$_COOKIE[$session_name] && $_GET[$session_name] && ini_get("session.use_only_cookies")) { + if (!$_COOKIE[$session_name] && $_GET[$session_name] && ini_bool("session.use_only_cookies")) { $error = lang('Session support must be enabled.'); } elseif (isset($_GET["username"])) { if (($_COOKIE[$session_name] || $_GET[$session_name]) && !$token) { Modified: branches/sqlite/adminer/include/bootstrap.inc.php =================================================================== --- branches/sqlite/adminer/include/bootstrap.inc.php 2010-04-19 19:34:05 UTC (rev 1459) +++ branches/sqlite/adminer/include/bootstrap.inc.php 2010-04-20 21:42:20 UTC (rev 1460) @@ -39,12 +39,14 @@ exit; } +include "../adminer/include/functions.inc.php"; + if (!isset($_SERVER["REQUEST_URI"])) { $_SERVER["REQUEST_URI"] = $_SERVER["ORIG_PATH_INFO"] . ($_SERVER["QUERY_STRING"] != "" ? "?$_SERVER[QUERY_STRING]" : ""); // IIS 5 compatibility } @ini_set("session.use_trans_sid", false); // protect links in export, @ - may be disabled -if (!ini_get("session.auto_start")) { +if (!ini_bool("session.auto_start")) { session_name("adminer_sid"); // use specific session name to get own namespace $params = array(0, preg_replace('~\\?.*~', '', $_SERVER["REQUEST_URI"]), "", $_SERVER["HTTPS"] && strcasecmp($_SERVER["HTTPS"], "off")); if (version_compare(PHP_VERSION, '5.2.0') >= 0) { @@ -75,7 +77,6 @@ } @set_time_limit(0); // @ - can be disabled -include "../adminer/include/functions.inc.php"; include "../adminer/include/lang.inc.php"; include "../adminer/lang/$LANG.inc.php"; include "../adminer/include/pdo.inc.php"; @@ -103,7 +104,7 @@ include "./include/export.inc.php"; session_cache_limiter(""); // to allow restarting session -if (!ini_get("session.use_cookies") || @ini_set("session.use_cookies", false) !== false) { // @ - may be disabled +if (!ini_bool("session.use_cookies") || @ini_set("session.use_cookies", false) !== false) { // @ - may be disabled session_write_close(); // improves concurrency if a user opens several pages at once, may be restarted later } Modified: branches/sqlite/adminer/include/functions.inc.php =================================================================== --- branches/sqlite/adminer/include/functions.inc.php 2010-04-19 19:34:05 UTC (rev 1459) +++ branches/sqlite/adminer/include/functions.inc.php 2010-04-20 21:42:20 UTC (rev 1460) @@ -115,6 +115,15 @@ return $return; } +/** Get INI boolean value +* @param string +* @return bool +*/ +function ini_bool($ini) { + $val = ini_get($ini); + return (eregi('^(on|true|yes)$', $val) || (int) $val); // boolean values set by php_value are strings +} + /** Get list of values from database * @param string * @param mixed @@ -236,7 +245,7 @@ * @return null */ function restart_session() { - if (!ini_get("session.use_cookies")) { + if (!ini_bool("session.use_cookies")) { session_start(); } } @@ -502,7 +511,7 @@ $checked = (is_int($value) ? ($value >> $i) & 1 : in_array($val, explode(",", $value), true)); echo " <label><input type='checkbox' name='fields[$name][$i]' value='" . (1 << $i) . "'" . ($checked ? ' checked' : '') . "$onchange>" . h($val) . '</label>'; } - } elseif (ereg('binary|blob|bytea', $field["type"]) && ini_get("file_uploads")) { + } elseif (ereg('binary|blob|bytea', $field["type"]) && ini_bool("file_uploads")) { echo "<input type='file' name='fields-$name'$onchange>"; } elseif (ereg('text|blob', $field["type"])) { echo "<textarea cols='50' rows='" . ($driver != "sqlite" || ereg("\n", $value) ? 12 : 1) . "'$attrs>" . h($value) . '</textarea>'; @@ -544,7 +553,7 @@ if ($field["type"] == "set") { return array_sum((array) $value); } - if (ereg('binary|blob|bytea', $field["type"]) && ini_get("file_uploads")) { + if (ereg('binary|blob|bytea', $field["type"]) && ini_bool("file_uploads")) { $file = get_file("fields-$idf"); if (!is_string($file)) { return false; //! report errors Modified: branches/sqlite/adminer/sql.inc.php =================================================================== --- branches/sqlite/adminer/sql.inc.php 2010-04-19 19:34:05 UTC (rev 1459) +++ branches/sqlite/adminer/sql.inc.php 2010-04-20 21:42:20 UTC (rev 1460) @@ -29,7 +29,7 @@ $history[] = $query; } $space = "(\\s|/\\*.*\\*/|(#|-- )[^\n]*\n|--\n)"; - if (!ini_get("session.use_cookies")) { + if (!ini_bool("session.use_cookies")) { session_write_close(); } $delimiter = ";"; @@ -145,7 +145,7 @@ <p> <?php -if (!ini_get("file_uploads")) { +if (!ini_bool("file_uploads")) { echo lang('File uploads are disabled.'); } else { ?> <?php echo lang('File upload'); ?>: <input type="file" name="sql_file"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |