$this->types[lang('User types')] = array_flip($types);
}
+ function insertSql($table, $set) {
+ $auto_increment = array_filter(fields($table), function ($field) {
+ return $field['auto_increment'];
+ });
+ return parent::insertSql($table, $set) . (count($auto_increment) == 1 ? " RETURNING " . idf_escape(key($auto_increment)) : "");
+ }
+
function insertUpdate($table, $rows, $primary) {
global $connection;
foreach ($rows as $set) {
}
function last_id($result) {
- return 0; // there can be several sequences
+ return (is_object($result) ? $result->fetch_column(0) : 0);
}
function explain($connection, $query) {
* @return bool
*/
function insert($table, $set) {
- return queries("INSERT INTO " . table($table) . ($set
+ return queries($this->insertSql($table, $set));
+ }
+
+ /** Get SQL query to insert data into table
+ * @param string
+ * @param array same as insert()
+ * @return string
+ */
+ protected function insertSql($table, $set) {
+ return "INSERT INTO " . table($table) . ($set
? " (" . implode(", ", array_keys($set)) . ")\nVALUES (" . implode(", ", $set) . ")"
: " DEFAULT VALUES"
- ));
+ );
}
/** Insert or update data in table
return $this->fetch(\PDO::FETCH_NUM);
}
+ function fetch_column($field) {
+ return $this->fetchColumn($field);
+ }
+
function fetch_field() {
$row = (object) $this->getColumnMeta($this->_offset++);
$row->orgtable = $row->table;
Adminer dev:
+PostgreSQL: Display auto_increment of inserted rows
Adminer 5.0.6 (released 2025-03-17):
Align numbers right (bug #912)