Michal Čihař - Blog Archives for phpMyAdmin

phpMyAdmin 3.4 will be feature killer

I know this is quite premature as we're just about to release 3.3, however development on 3.4 has already started in SVN and we've already implemented more than 20 requests from our features tracker. This is even bigger number than release 3.3 will have!

Well the fact is that most of these things are cosmetic or tiny improvements, on the other side some of them were requested for very long time (the oldest one currently dates to 2003).

The new features bring things such as direct blob download (thing we definitely should have earlier), links to documentation for SQL commands in highlighted SQL (what was quite easy, but nobody requested such thing and I added the feature after seeing that Adminer does this), possibility to directly bookmark most pages or exporting user privileges. See ChangeLog for more detailed list of features.

You can try all new features on our demo server.

New security issues

I just published three new security issues on phpMyAdmin. They are not exactly something what you would call new as you can see from CVE ids and even from phpMyAdmin version which does fix them (none of them existed in 3.x branch and were fixed in 2.9.10 for 2.9 branch).

However they got assigned CVE ids recently what means that we should tell about them to our users even when we don't think these are that important. So don't be frightened of them :-).

Going to FOSDEM 2010

Some time ago we decided in phpMyAdmin team to create yet another team meeting (after five years) at FOSDEM 2010. It took some time, but now I should have all travel things arranged (thanks to my employer who sends me there).

So if anybody wants to meet there, just drop me an email and I will try to put you on my schedule.

Problems with phpMyAdmin website

Our website currently shows a bit wrong information about file downloads. The single reason for this is that we take this data from sourceforge.net and all they exports are currently broken in some way.

Per file RSS (which was only working source of information few days ago) seems to be disabled recently, RSS for all files just repeats same metadata for all files and the old releases RSS does not list recent releases.

I did not want to blame them again, but it has been already three weeks from my last complains and bug reports and all that changed is that they broke (or removed?) the last working feed.

Summer of Code in phpMyAdmin

As the project is over, I think it's time for some summary. I think this year we got quite a good improvements. Most of them are already merged in trunk, but they might need some polishing, especially as the branches were developed separately and now they are first time used together. Anyway if you want to give new code a try, please go to our demo server and play with it!

So what do we have?

Import and export improvements

When I saw the proposal for first time, I thought that this is the best prepared proposal I've ever seen and we must have this student. And it turned to be true. Derek did great job, going in more directions than proposal included and brought great improvements to phpMyAdmin.

To start with import part, phpMyAdmin can now take any spreadsheet or CSV and create table from it automatically, with some kind of heuristics to find out numerical or date columns.

On the export side, he integrated PHPExcel library and phpMyAdmin can now generate proper Excel 2003 and 2007 documents.

The good thing also is that he wants to stay active even after GSoC.

Changes tracking

Even though Alexander Rutkowski was really quited in first half of the project, he indeed did code in that time and he brought feature that will be useful mostly for application developers. You can activate tracking of certain table, all your changes will be logged and you can get SQL commands to replay the changes on other database later.

This can be useful either for monitoring changes which users did or for making changes on development system and applying them later on production one.

Database synchronisation

Zahra Naeem did originally also apply for changes tracking, but as we did not want to have two students on the same topic, we persuaded him to take another project, which was not taken by other students - database synchronisation. This feature is somewhat similar to previous in one use case - you can use it to apply changes from development system to production one. You enter connection settings for two database servers and phpMyAdmin finds out difference between the databases and allows you to synchronize them.

I feel like Zahra felt that almost everything is done in mid-term and slowed down a lot and I'm still not happy with documentation he had provided. Hopefully he will get to that and improve it.

Replication support

This project was mentored by Marc and to me it looks like Tomáš Srnka did good job there. The changes are not yet in trunk, but hopefully they will be merged soon and I will then try to set up some replication stuff on demo server, so that you can play with it.

Permanent user preferences

The only unsuccessful project this year. The student failed to deliver something for mid-term evaluation and because of this he failed. We still have his patch in patch tracker and I think I will try to find time to look at it more deeply, whether it is worth using and cleaning up or it is better to write whole thing from beginning.


I think this Summer of Code was great and I hope next year we will be really a separate project there and not under MySQL hood (not that would be bad, but I think with five students it is better to be directly there than coordinating with MySQL guys). And I hope we will have more students like Derek :-).

New code in phpMyAdmin

This evening (CEST), the first code from this year GSoC has been merged to phpMyAdmin trunk. And I think it is really interesting piece of code.

Derek Schaefer has spent his time to improve import abilities of phpMyAdmin. You can now import arbitrary spreadsheet documents and you should be able to get reasonably looking table with all of the data.

And as a side effect, we got better export to various Excel formats (including XLSX).

Thanks Derek, your contributions were really great and it was a pleasure to work with you (especially when compared to responsiveness of other students).

Fun with SourceForge.net updates

Recently, SourceForge.net has updated their release system. The change does not seem to be that bad (besides the fact that people got used to the old system and need to learn something new), but the change completely broke their RSS exports for file releases.

But hey, you have freedom of choice! You can either use old RSS feeds, which are not being updated or new RSS feeds, which duplicate same data for all entries. Sorry, these links require login.

At the end I've found a way - you can download whole project RSS, where you ignore most content, but get just the file names and then download separately RSS for each file. And now you have complete data!

Try our future additions

As the mid term evaluation is close, our students should have something working. And why not to share their results with all our users?

So I hacked up their current state of work on our demo server, feel free to try them:

Please note that messages are present only in English language for now, so you might get some errors if using another language.

Midterm evaluation for GSoC

So now it comes. Students are supposed to show what they managed to do so far and we should evaluate their projects and recommend Google (not) to send first part of money to them.

As far as I can see, most projects are quite in a good shape, even though we were afraid a bit about the progress several weeks ago.

However not all my students are active. One OpenSUSE project (Synchronization with Mobile Devices by Peter Somlo) did not actually start because student found time to look at it this week. A bit different case is Alexander Rutkowski with Tracking mechanism for phpMyAdmin, because he completely failed to reply to any of my mails.

I hope other students will complete their projects successfully and phpMyAdmin will greatly benefit from their work in future.