diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php index 0dee1711..0240420a 100644 --- a/adminer/include/adminer.inc.php +++ b/adminer/include/adminer.inc.php @@ -850,6 +850,7 @@ class Adminer { $insert = ""; $buffer = ""; $keys = array(); + $generatedKeys = array(); $suffix = ""; $fetch_function = ($table != '' ? 'fetch_assoc' : 'fetch_row'); while ($row = $result->$fetch_function()) { @@ -857,6 +858,10 @@ class Adminer { $values = array(); foreach ($row as $val) { $field = $result->fetch_field(); + if (!empty($fields[$field->name]['generated'])) { + $generatedKeys[$field->name] = true; + continue; + } $keys[] = $field->name; $key = idf_escape($field->name); $values[] = "$key = VALUES($key)"; @@ -874,6 +879,9 @@ class Adminer { $insert = "INSERT INTO " . table($table) . " (" . implode(", ", array_map('idf_escape', $keys)) . ") VALUES"; } foreach ($row as $key => $val) { + if (isset($generatedKeys[$key])) { + continue; + } $field = $fields[$key]; $row[$key] = ($val !== null ? unconvert_field($field, preg_match(number_type(), $field["type"]) && !preg_match('~\[~', $field["full_type"]) && is_numeric($val) ? $val : q(($val === false ? 0 : $val))) diff --git a/todo.txt b/todo.txt index bf6b9986..d7a0e5cc 100644 --- a/todo.txt +++ b/todo.txt @@ -20,7 +20,6 @@ Joining tables - PRIMARY KEY (table, joining) Rank, Tree structure MySQL: -Generated columns (MySQL >= 5.7.6) Data longer than max_allowed_packet can be sent by mysqli_stmt_send_long_data() MariaDB: