From 27067912d10ebd91837816deb52bdafab01bf46c Mon Sep 17 00:00:00 2001 From: jakubvrana Date: Wed, 25 Jul 2007 15:18:59 +0000 Subject: [PATCH] Timestamps git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@248 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- create.inc.php | 2 +- edit.inc.php | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/create.inc.php b/create.inc.php index e670df73..06195caa 100644 --- a/create.inc.php +++ b/create.inc.php @@ -26,7 +26,7 @@ if ($_POST && !$error && !$_POST["add"]) { if (strlen($field["field"]) && isset($types[$field["type"]])) { $fields[] = (!strlen($_GET["create"]) ? "" : (strlen($field["orig"]) ? "CHANGE " . idf_escape($field["orig"]) . " " : "ADD ")) . idf_escape($field["field"]) . process_type($field) - . ($field["null"] ? "" : " NOT NULL") + . ($field["null"] ? " NULL" : " NOT NULL") // NULL for timestamp . ($key == $_POST["auto_increment_col"] ? " AUTO_INCREMENT$auto_increment_index" : "") . " COMMENT '" . $mysql->escape_string($field["comment"]) . "'" . (strlen($_GET["create"]) && !strlen($field["orig"]) ? $after : "") diff --git a/edit.inc.php b/edit.inc.php index 56118323..eeca462a 100644 --- a/edit.inc.php +++ b/edit.inc.php @@ -1,9 +1,9 @@ $field) { - if (isset($_GET["default"]) ? !$field["auto_increment"] : isset($field["privileges"][$where ? "update" : "insert"])) { - $fields[$name] = $field; +$fields = fields($_GET["edit"]); +foreach ($fields as $name => $field) { + if (isset($_GET["default"]) ? $field["auto_increment"] : !isset($field["privileges"][$where ? "update" : "insert"])) { + unset($fields[$name]); } } if ($_POST && !$error) { @@ -16,11 +16,17 @@ if ($_POST && !$error) { foreach ($fields as $name => $field) { $val = process_input($name, $field); if ($val !== false) { - $set[] = idf_escape($name) . (isset($_GET["default"]) ? ($val == "NULL" ? " DROP DEFAULT" : " SET DEFAULT $val") : " = $val"); + if (!isset($_GET["default"])) { + $set[] = idf_escape($name) . " = $val"; + } elseif ($field["type"] == "timestamp") { + $set[] = " MODIFY " . idf_escape($name) . " timestamp" . ($field["null"] ? " NULL" : "") . " DEFAULT $val"; //! ON UPDATE + } else { + $set[] = " ALTER " . idf_escape($name) . ($val == "NULL" ? " DROP DEFAULT" : " SET DEFAULT $val"); + } } } if (isset($_GET["default"])) { - $query = "ALTER TABLE " . idf_escape($_GET["edit"]) . " ALTER " . implode(", ALTER ", $set); + $query = "ALTER TABLE " . idf_escape($_GET["edit"]) . implode(",", $set); $message = lang('Default values has been set.'); } elseif ($where) { $query = "UPDATE " . idf_escape($_GET["edit"]) . " SET " . implode(", ", $set) . " WHERE " . implode(" AND ", $where) . " LIMIT 1"; -- 2.39.5