diff --git a/adminer/create.inc.php b/adminer/create.inc.php
index 0a0569b0..df9f7825 100644
--- a/adminer/create.inc.php
+++ b/adminer/create.inc.php
@@ -5,7 +5,7 @@ $partition_by = array('HASH', 'LINEAR HASH', 'KEY', 'LINEAR KEY', 'RANGE', 'LIST
$referencable_primary = referencable_primary($TABLE);
$foreign_keys = array();
foreach ($referencable_primary as $table_name => $field) {
- $foreign_keys[idf_escape($table_name) . "." . idf_escape($field["field"])] = $table_name;
+ $foreign_keys[str_replace("`", "``", $table_name) . "`" . str_replace("`", "``", $field["field"])] = $table_name; // not idf_escape() - used in JS
}
$orig_fields = array();
@@ -44,7 +44,7 @@ if ($_POST && !$error && !$_POST["add"] && !$_POST["drop_col"] && !$_POST["up"]
$fields[] = array($field["orig"], $process_field, $after);
}
if (!isset($types[$field["type"]])) {
- $foreign[] = ($TABLE != "" ? "ADD " : " ") . "FOREIGN KEY (" . idf_escape($field["field"]) . ") REFERENCES " . idf_escape($foreign_keys[$field["type"]]) . " (" . idf_escape($type_field["field"]) . ")";
+ $foreign[] = ($TABLE != "" ? "ADD " : " ") . "FOREIGN KEY (" . idf_escape($field["field"]) . ") REFERENCES " . idf_escape($foreign_keys[$field["type"]]) . " (" . idf_escape($type_field["field"]) . ")" . (in_array($field["on_delete"], $on_actions) ? " ON DELETE $field[on_delete]" : "");
}
}
$after = "AFTER " . idf_escape($field["field"]);
diff --git a/adminer/include/editing.inc.php b/adminer/include/editing.inc.php
index c22aeaab..9be76f4d 100644
--- a/adminer/include/editing.inc.php
+++ b/adminer/include/editing.inc.php
@@ -108,12 +108,13 @@ function referencable_primary($self) {
* @return null
*/
function edit_type($key, $field, $collations, $foreign_keys = array()) {
- global $structured_types, $unsigned, $inout;
+ global $structured_types, $unsigned, $inout, $on_actions;
?>
| " size="3" onfocus="editingLengthFocus(this);"> | |