Features Documentation Screenshots Clients Contact
Most of the features are parsed directly from the SQL script. This concept saves the time to create the database and the administration interface - most instructions need to be written only once.
Adminer features which can not be taken directly from the SQL syntax are taken from the SQL comments. First of all, there could be -- adminer:
comment with some global settings. Comment of each individual column is used as its title and there could be special instructions enclosed in curly brackets. E.g. {EMAIL}
indicates that the column holds an e-mail address which is checked for correctness and displayed as a link.
No external libraries or frameworks are needed to run the administration interface. Generated code is a plain PHP easy to modify and ready to deploy on the client server.
Internal character set of Adminer is UTF-8 and the output can be converted to any character set supported by Iconv. Data in the database can be stored in any collation. Administration interface can run in English and Czech or in both languages switchable from the interface.
Design of the administration interface can be easily customized by the editation of CSS or by postprocessing the generated code. All generated HTML and even PHP code can be customized.
Access to the administration interface can be protected by a username and password either fixed or read from a custom table. All passwords are stored as MD5 or SHA-1 hashes, optionally with HMAC protection.
If a column refers to an other table then the default column of a target table is displayed. In editation, it is displayed as a drop-down menu. Tables used for the M:N relations are displayed as a list of checkboxes or multiple <select>
. If there are other columns in the joining table they can be edited as well. If the table is dependent on other table, it can be edited in an <iframe>
or directly with other fields of parent table.
All data types are recognized. E.g. date column can be edited as a simple text-box, calendar or separate parts for year, month and day. The bool type is displayed as checkbox, numeric data types are validated for its range, enum and set types are supported too. Each field can be marked with the {HTML}
attribute to denote that the result should not be HTML escaped.
Any table can be completely hidden from the administration interface by REVOKE SELECT statement. Insertion, editation and deletion can be restricted the same way. Any column can be hidden from the interface by not providing a title for it. From a listing, it can be hidden by the &
attribute and editing can be forbidden by the {UNEDITABLE}
instruction.
All columns with the NOT NULL attribute has to be inputed. The DEFAULT value of all columns is respected. Insterted values are checked against the CHECK constraint.
Most administration interfaces offers sorting of the table by any column. This kind of sorting can be however very slow without indexes and is not able to sort the table e.g. first by type and then by the name. Adminer allows sorting the table by its natural indexes which eliminates both disadvantages. Any index can be mark as non-sorting and next sorting orders can be added beside natural indexes. One column can be marked as manual order - values in this column are maintained to hold numbers from one to the total number of items.
Most administration interfaces allow searching for a value in all columns. Adminer goes further in this - any column can be searched with any operator, single column can be used more than once in searching (greater than 1000 and less than 2000). Fulltext indexes are also respected.
Adminer supports saving files to a user-specified directory or to a blob column, image manipulation (checking the maximal image size and resizing to the specified dimension) and sending e-mails to all addresses in a table.