Update TableController.php

This commit is contained in:
walkor 2023-01-28 12:49:51 +08:00 committed by GitHub
parent 3bb069cf65
commit c72cfdec8f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -195,7 +195,7 @@ class TableController extends Base
$data = $request->post(); $data = $request->post();
$old_table_name = Util::filterAlphaNum($data['old_table']); $old_table_name = Util::filterAlphaNum($data['old_table']);
$table_name = Util::filterAlphaNum($data['table']); $table_name = Util::filterAlphaNum($data['table']);
$table_comment = Util::pdoQuote($data['table_comment']); $table_comment = $data['table_comment'];
$columns = $data['columns']; $columns = $data['columns'];
$forms = $data['forms']; $forms = $data['forms'];
$keys = $data['keys']; $keys = $data['keys'];
@ -284,6 +284,7 @@ class TableController extends Base
$table = Util::getSchema($table_name, 'table'); $table = Util::getSchema($table_name, 'table');
if ($table_comment !== $table['comment']) { if ($table_comment !== $table['comment']) {
$table_comment = Util::pdoQuote($table_comment);
Util::db()->statement("ALTER TABLE `$table_name` COMMENT $table_comment"); Util::db()->statement("ALTER TABLE `$table_name` COMMENT $table_comment");
} }
@ -320,9 +321,10 @@ class TableController extends Base
$key_name = $key['name']; $key_name = $key['name'];
$old_key = $old_keys[$key_name] ?? []; $old_key = $old_keys[$key_name] ?? [];
// 如果索引有变动,则删除索引,重新建立索引 // 如果索引有变动,则删除索引,重新建立索引
if ($old_key && ($key['type'] != $old_key['type'] || $key['columns'] != $old_key['columns'])) { if ($old_key && ($key['type'] != $old_key['type'] || $key['columns'] != implode(',', $old_key['columns']))) {
$old_key = []; $old_key = [];
unset($old_keys[$key_name]); unset($old_keys[$key_name]);
echo "Drop Index $key_name\n";
$table->dropIndex($key_name); $table->dropIndex($key_name);
} }
// 重新建立索引 // 重新建立索引
@ -334,6 +336,7 @@ class TableController extends Base
$table->unique($columns, $name); $table->unique($columns, $name);
continue; continue;
} }
echo "Create Index $key_name\n";
$table->index($columns, $name); $table->index($columns, $name);
} }
} }
@ -343,6 +346,7 @@ class TableController extends Base
$old_keys_names = array_column($old_keys, 'name'); $old_keys_names = array_column($old_keys, 'name');
$drop_keys_names = array_diff($old_keys_names, $exists_key_names); $drop_keys_names = array_diff($old_keys_names, $exists_key_names);
foreach ($drop_keys_names as $name) { foreach ($drop_keys_names as $name) {
echo "Drop Index $name\n";
$table->dropIndex($name); $table->dropIndex($name);
} }
}); });
@ -1454,7 +1458,7 @@ EOF;
$field = Util::filterAlphaNum($column['field']); $field = Util::filterAlphaNum($column['field']);
$old_field = Util::filterAlphaNum($column['old_field'] ?? null); $old_field = Util::filterAlphaNum($column['old_field'] ?? null);
$nullable = $column['nullable']; $nullable = $column['nullable'];
$default = Util::pdoQuote($column['default']); $default = Util::filterAlphaNum($column['default']);
$comment = Util::pdoQuote($column['comment']); $comment = Util::pdoQuote($column['comment']);
$auto_increment = $column['auto_increment']; $auto_increment = $column['auto_increment'];
$length = (int)$column['length']; $length = (int)$column['length'];
@ -1522,7 +1526,7 @@ EOF;
} }
if ($method != 'text' && $default !== null) { if ($method != 'text' && $default !== null) {
$sql .= "DEFAULT $default "; $sql .= "DEFAULT '$default' ";
} }
if ($comment !== null) { if ($comment !== null) {