Things You Might Not Know About phpMyAdmin: The History, Features, and Code Behind the Popular App for Administering MySQL Databases

phpMyAdmin: Nearly 20 Years of Bringing MySQL to the Web

TL; DR: A nearly 20-year-old project with a stable and flexible codebase, phpMyAdmin is the go-to program for managing MySQL and MariaDB databases. The open-source program lets developers import and export data, administer servers, and set user permissions through a web interface or remote access. Project Administrator and Infrastructure Coordinator Michal Čihař shared three lesser-known features of phpMyAdmin with us, as well as how the code performed on a recent security audit. With a new version due in early 2017, phpMyAdmin continues to develop effective, efficient, and powerful tools for website administrators.

Some 15 years ago in Prague, Michal Čihař contributed an updated Czech translation to a young but popular PHP application and MySQL administration program.

Translations of phpMyAdmin were “almost nonexistent at the time,” he said. While most computer people can understand English, Michal wanted to help the program be more accessible and comfortable to non-native English speakers.

He wrote the framework phpMyAdmin uses for managing online translations and later contributed charset conversion code, eventually becoming the Project Administrator and Infrastructure Coordinator in charge of the project website, demo server, wiki, and helping wherever needed.

Now, the free and open-source tool for managing databases comes with a reputation that has eclipsed strict functionality to become more based in tradition, according to Michal.

“We were there since the beginning, since MySQL and PHP first started to be used,” he said. “Since that time, we became sort of the standard program hosting companies offer to manage MySQL. MySQL is difficult to manage over the web, so that’s why we get installed in most cases. That’s why we’re so wellknown.”

Michal’s 3 Offbeat Ways to Do More With phpMyAdmin

Most phpMyAdmin users employ the tool to create, modify, or delete databases, tables, fields, and rows, along with managing users and permissions.

Screenshot of phpMyAdmin interface

Don’t let the simple interface fool you — phpMyAdmin packs a punch when it comes to MySQL database management.

The project team, however, has heard of several inventive ways of applying phpMyAdmin — some are strong use cases of little-known features, while other practices are more surprising and puzzling, Michal said.

1. Browser Transformations: Display Images Stored In Your Database

The drop-down browser transformation field lists a set of predefined transformations, and phpMyAdmin’s documentation explains how to build your own custom options. Transformations can be applied globally across your database or by MIME type, according to Michal.

We have quite a few features that are used just by a few users,” he said. “Browser transformations let you apply custom transformations when browsing the data. It can be used for anything from displaying an image that is stored in the database, up to any sort of custom processing you’d like. It’s an extensible system, and you can use it for virtually anything.”

2. Content Management: Proceed At Your Own Risk

One of the strangest uses Michal has heard is people using phpMyAdmin instead of a content management system. He theorized the myriad of features in phpMyAdmin, along with the open codebase, give developers just enough of a chance to save money and reduce the number of systems running on their server.

“They have something to render data from their database but didn’t want to buy the administration interface, and they’ll use phpMyAdmin for that,” he said. “I don’t know why, and I don’t really think it’s a good fit, but it shows how wide the usage of phpMyAdmin is.”

3. Remote Access: Directly Connect With Data on Your Server

One of the biggest advantages of using phpMyAdmin, according to Michal, is the remote access to your MySQL and MariaDB databases. With MySQL being a central component of the LAMP (Linux, Apache, MySQL, Perl/PHP/Python) open-source web application stack, phpMyAdmin connects developers to their servers.

“Most hosts don’t have that directly,” he said. “You would have to order a connection to the server or use something else.”

Successful Security Audit Finds No Serious Vulnerabilities in Codebase

Most recently, the phpMyAdmin team took on a series of security audits, kicked off by one sponsored by Mozilla’s Secure Open Source Fund. The phpMyAdmin project was among the first selected for the first year of Mozilla’s program for auditing, repairing, and verifying the security of key open-source software.

Collection of images showing phpMyAdmin team members

The small phpMyAdmin team distributed around the world but stays in contact through IRC. Michal Čihař is top left.

While the Mozilla audit — which Michal said inspired subsequent audits from other organizations — found a few minor issues, Michal is proud that phpMyAdmin’s 508,000-plus lines of code didn’t contain any serious weaknesses.

The phpMyAdmin team spent close to a year addressing the medium- and low-priority issues while still releasing frequent security updates. Michal said nearly every issue from the audits has been solved, but not every solution has been released publicly quite yet.

“We don’t have the money to do regular security audits,” he said, adding that Mozilla’s audit brought more experts and attention to catching problems as soon as they appear. “We now have continuous attention to security, compared to the occasional attention we had before.”

Developing and Supporting phpMyAdmin for Global Community of Users

Michal’s early contributions to phpMyAdmin’s translations management systems are paying off — more than 90 languages are supported to varying degrees.

While fewer than 10 people make up the phpMyAdmin project team, roughly 700 contributors have committed code through the years.

“Almost every day, we have some code coming to us,” Michal said.

Users can expect an update to Version 4.7 in March. The new release focuses largely on streamlining the codebase, Michal said, along with optimizing and externalizing embedded scripting libraries.

“There’s not much in the way of new features, but we have really focused on cleaning up the codebase and fixing some long outstanding bugs,” he said. “It’ll be something that most people won’t notice a big difference with, but looking internally, it’s something that allows us to move further faster.”

Laura Stamey

Questions or Comments? Ask Laura!

Ask a question and Laura will respond to you. We strive to provide the best advice on the net and we are here to help you in any way we can.