diff --git a/adminer/call.inc.php b/adminer/call.inc.php index 77464ffa..f9871d53 100644 --- a/adminer/call.inc.php +++ b/adminer/call.inc.php @@ -55,7 +55,7 @@ if ($in) { $field = $routine["fields"][$key]; echo "" . h($field["field"]); $value = $_POST["fields"][$key]; - if (strlen($value) && ($field["type"] == "enum" || $field["type"] == "set")) { + if (strlen($value) && ereg("enum|set", $field["type"])) { $value = intval($value); } input($field, $value, (string) $_POST["function"][$name]); // param name can be empty diff --git a/adminer/create.inc.php b/adminer/create.inc.php index 15da283f..abd9efc8 100644 --- a/adminer/create.inc.php +++ b/adminer/create.inc.php @@ -101,7 +101,7 @@ page_header((strlen($TABLE) ? lang('Alter table') : lang('Create table')), $erro $engines = array(); $result = $connection->query("SHOW ENGINES"); while ($row = $result->fetch_assoc()) { - if ($row["Support"] == "YES" || $row["Support"] == "DEFAULT") { + if (ereg("YES|DEFAULT", $row["Support"])) { $engines[] = $row["Engine"]; } } diff --git a/adminer/edit.inc.php b/adminer/edit.inc.php index 23d39986..6aa40876 100644 --- a/adminer/edit.inc.php +++ b/adminer/edit.inc.php @@ -51,7 +51,7 @@ if ($_POST["save"]) { $select = array(); foreach ($fields as $name => $field) { if (isset($field["privileges"]["select"])) { - $select[] = ($_POST["clone"] && $field["auto_increment"] ? "'' AS " : ($field["type"] == "enum" || $field["type"] == "set" ? "1*" . idf_escape($name) . " AS " : "")) . idf_escape($name); + $select[] = ($_POST["clone"] && $field["auto_increment"] ? "'' AS " : (ereg("enum|set", $field["type"]) ? "1*" . idf_escape($name) . " AS " : "")) . idf_escape($name); } } $row = array(); @@ -71,7 +71,7 @@ if ($fields) { echo "" . $adminer->fieldName($field); $default = $_GET["set"][bracket_escape($name)]; $value = (isset($row) - ? (strlen($row[$name]) && ($field["type"] == "enum" || $field["type"] == "set") ? intval($row[$name]) : $row[$name]) + ? (strlen($row[$name]) && ereg("enum|set", $field["type"]) ? intval($row[$name]) : $row[$name]) : ($_POST["clone"] && $field["auto_increment"] ? "" : (isset($_GET["select"]) ? false : (isset($default) ? $default : $field["default"]))) ); if (!$_POST["save"] && is_string($value)) { diff --git a/adminer/include/functions.inc.php b/adminer/include/functions.inc.php index 2b3fc3d1..1814c277 100644 --- a/adminer/include/functions.inc.php +++ b/adminer/include/functions.inc.php @@ -138,7 +138,7 @@ function get_vals($query, $column = 0) { */ function unique_idf($row, $indexes) { foreach ($indexes as $index) { - if ($index["type"] == "PRIMARY" || $index["type"] == "UNIQUE") { + if (ereg("PRIMARY|UNIQUE", $index["type"])) { $return = array(); foreach ($index["columns"] as $key) { if (!isset($row[$key])) { // NULL is ambiguous