]> git.joonet.de Git - adminer.git/commitdiff
Timestamps
authorjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Wed, 25 Jul 2007 15:18:59 +0000 (15:18 +0000)
committerjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Wed, 25 Jul 2007 15:18:59 +0000 (15:18 +0000)
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@248 7c3ca157-0c34-0410-bff1-cbf682f78f5c

create.inc.php
edit.inc.php

index e670df73d94d512accb26da4317091e2565641b8..06195caa3fcadb2863aafc6d357cac910189bcc0 100644 (file)
@@ -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 : "")
index 5611832345374274fc6806f9c739d6fcd236ebd3..eeca462ad61ef8cd0dfc2ca5075f7fcbe89ce1ba 100644 (file)
@@ -1,9 +1,9 @@
 <?php
 $where = where();
-$fields = array();
-foreach (fields($_GET["edit"]) as $name => $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";