most database tools offer auto-completion for writing SQL queries (e.g.
pgAdmin3, pl/sql developer).
I think it would be great to have this feature in phpMyAdmin.
I've written a small demo to offer sql auto completion for a normal
textarea (tested with MySQL5 and Firefox2).
In this first draft, auto-complete is done for databases, tables and
columns. The user types some sql in the textarea and the selectbox on
the right side gets filled automatically. When typing in the textarea,
some keys are bound to the selectbox (cursor up, cursor down, escape and
enter), so the user can directly insert values from the selectbox to the
What do you think about it? Would you like to add it to one of the next
From: Sebastian Mendel <lists(a)sebastianmendel.de>
Date: Sun, 09 Mar 2008 09:45:15 +0100
Subject: Re: [Phpmyadmin-devel] MySQL 5.1.23 and information_schema
Marc Delisle schrieb:
> Here are guidelines for improved speed accessing information_schema:
yes, for a long time ... ;-)
but none of the suggested improvements can be used when obtaining whole
database list ...
and we always specify as exact as possible what data we want from the I_S
Ok, but here is what MySQL has to say about version 6.0.4
"INFORMATION_SCHEMA implementation changes were made that optimize certain types of queries for INFORMATION_SCHEMA tables so that they execute more quickly."
I noticed the newly introduced warning that phpMyAdmin emits when Suhosin
is enabled in PHP. I expect that Suhosin will be enabled more and more,
because the demands on security of web applications are ever increasing.
It provides valuable protection of PHP which doesn't have the best
security history. For example Debian's next release will have Suhosin
enabled by default, and other distributions are doing or have already done
the same. So I doubt that adding such a warning is a viable solution to
The problem seems to be that when a table doesn't have a key defined,
phpMyAdmin encodes the entire row in the request URL, in order to make
sure to match the right row. Suhosin trips over this when that URL gets
I propose to resolve this problem in a different way. Wouldn't it be an
idea to take the contents of the entire row, run it through md5() or
sha1(), and pass that in the URL? This value could then in the query be
used when specifying something like "WHERE
MD5(CONCAT(field1,field2,field3)) = url_submitted_md5"? This would, in my
opinion, resolve the problem in a more elegant way that works for all
configurations. Even when not having Suhosin enabled, passing an URL of
many kilobytes long isn't desirable anyway.
Of course you could only do this when the row length exceeds some minimum
length if you want to.
What do you think?