diff --git a/adminer/check.inc.php b/adminer/check.inc.php index c6724dbc..e1f6961e 100644 --- a/adminer/check.inc.php +++ b/adminer/check.inc.php @@ -4,9 +4,13 @@ $name = $_GET["name"]; $row = $_POST; if ($row && !$error) { - $result = ($name == "" || queries("ALTER TABLE " . table($TABLE) . " DROP CONSTRAINT " . idf_escape($name))); - if (!$row["drop"]) { - $result = queries("ALTER TABLE " . table($TABLE) . " ADD" . ($row["name"] != "" ? " CONSTRAINT " . idf_escape($row["name"]) . "" : "") . " CHECK ($row[clause])"); //! SQL injection + if ($jush == "sqlite") { + $result = recreate_table($TABLE, $TABLE, array(), array(), array(), 0, array(), $name, ($row["drop"] ? "" : $row["clause"])); + } else { + $result = ($name == "" || queries("ALTER TABLE " . table($TABLE) . " DROP CONSTRAINT " . idf_escape($name))); + if (!$row["drop"]) { + $result = queries("ALTER TABLE " . table($TABLE) . " ADD" . ($row["name"] != "" ? " CONSTRAINT " . idf_escape($row["name"]) . "" : "") . " CHECK ($row[clause])"); //! SQL injection + } } queries_redirect( ME . "table=" . urlencode($TABLE), @@ -18,18 +22,24 @@ if ($row && !$error) { page_header(($name != "" ? lang('Alter check') . ": " . h($name) : lang('Create check')), $error, array("table" => $TABLE)); if (!$row) { - $checks = check_constraints($TABLE); + $checks = $driver->checkConstraints($TABLE); $row = array("name" => $name, "clause" => $checks[$name]); } ?>