Location: PHPKode > projects > Modular Site Manager > htdocs/phpmyadmin/Documentation.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
<!-- $Id: Documentation.html,v 2.177.2.3 2005/12/27 13:55:17 lem9 Exp $ -->
<!--
    vim: expandtab ts=4 sw=4 sts=4 tw=78
-->

<head>
    <link rel="icon" href="./favicon.ico" type="image/x-icon" />
    <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>phpMyAdmin 2.7.0-pl2 - Documentation</title>
    <link rel="stylesheet" type="text/css" href="docs.css" />
</head>

<body>
<a name="top"></a><br />

<div class="header">
<hr noshade="noshade" width="100%" />
    <a href="#top">Top</a> &nbsp;-&nbsp;
    <a href="#require">Requirements</a> &nbsp;-&nbsp;
    <a href="#intro">Introduction</a> &nbsp;-&nbsp;
    <a href="#setup">Installation</a> &nbsp;-&nbsp;
    <a href="#config">Configuration</a>
    <br />
    <a href="#transformations">Transformations</a> &nbsp;-&nbsp;
    <a href="#faq">FAQ</a> &nbsp;-&nbsp;
    <a href="#developers">Developers</a> &nbsp;-&nbsp;
    <a href="#credits">Credits</a> &nbsp;-&nbsp;
    <a href="translators.html">Translators</a>
<hr noshade="noshade" width="100%" />
</div>

<h1>phpMyAdmin 2.7.0-pl2 Documentation</h1>


<!-- TOP MENU -->
<ul>
    <li>
        <a href="http://www.phpmyadmin.net/">
            SourceForge phpMyAdmin project page&nbsp;&nbsp;&nbsp;[ http://www.phpmyadmin.net/ ]
        </a>
    </li>
    <li>
        Local documents:
        <ul>
            <li>Version history: <a href="changelog.php">ChangeLog</a></li>
            <li>General notes: <a href="readme.php">README</a></li>
            <li>License: <a href="license.php">LICENSE</a></li>
        </ul>
    </li>
    <li>
        Documentation version:
        <i>$Id: Documentation.html,v 2.177.2.3 2005/12/27 13:55:17 lem9 Exp $</i>
    </li>
</ul>


<!-- REQUIREMENTS -->
<a name="require"></a><br />
<h2>Requirements</h2>

<ul>
    <li>
        <b>PHP</b>
        <ul>
		<li>You need PHP 4.1.0 or newer, with <tt>session</tt> support (<a href="#faq1_31">*</a>)</li>
            <li>If you want to display inline thumbnails of JPEGs with the
                original aspect ratio, you also need GD2 support in PHP</li>
            <li>Starting with phpMyAdmin 2.6.1, MIME-based transformations
                that use an external program need PHP 4.3.0 or newer</li>
        </ul>
    </li>
    <li>
        <b>MySQL</b> 3.23.32 or newer (<a href="#faqmysqlversions">details</a>);
    </li>
    <li>
        Not really a requirement but a <b>strong suggestion</b>:
        if you are using
        the &quot;cookie&quot; authentication method, having the <tt>mcrypt</tt>
        PHP extension on your web server accelerates not only the login
        phase but every other action that you do in phpMyAdmin.
    </li>
    <li>
        a web-browser (doh!).
    </li>
</ul>


<!-- INTRODUCTION -->
<a name="intro"></a><br />
<h2>Introduction</h2>

<p>
    phpMyAdmin can manage a whole MySQL server (needs a super-user) as well as
    a single database. To accomplish the latter you'll need a properly set up
    MySQL user who can read/write only the desired database. It's up to you to
    look up the appropriate part in the MySQL manual.<br />
    Currently phpMyAdmin can:
</p>

<ul>
    <li>create and drop databases</li>
    <li>create, copy, drop, rename and alter tables</li>
    <li>do table maintenance</li>
    <li>delete, edit and add fields</li>
    <li>execute any SQL-statement, even batch-queries</li>
    <li>manage keys on fields</li>
    <li>load text files into tables</li>
    <li>create (*) and read dumps of tables</li>
    <li>export (*) data to CSV, XML and Latex formats</li>
    <li>administer multiple servers</li>
    <li>manage MySQL users and privileges</li>
    <li>check referential integrity in MyISAM tables</li>
    <li>using Query-by-example (QBE), create complex queries automatically connecting required tables</li>
    <li>create PDF graphics of your Database layout</li>
    <li>search globally in a database or a subset of it</li>
    <li>transform stored data into any format using a set of predefined functions,
        like displaying BLOB-data as image or download-link or ...</li>
    <li>support InnoDB tables and foreign keys <a href="#faq3_6">(see FAQ 3.6)</a></li>
    <li>support mysqli, the improved MySQL extension <a href="#faqmysqlversions">(see FAQ 1.17)</a></li>
    <li>
        communicate in
        <a href="./translators.html">50 different languages</a>
    </li>
</ul>

<p class="footnote">
    (*)&nbsp;
        phpMyAdmin can compress (Zip, GZip -RFC 1952- or Bzip2 formats) dumps
        and CSV exports if you use PHP4&nbsp;>=&nbsp;4.0.4 with Zlib support
        (<tt>--with-zlib</tt>) and/or Bzip2 support (<tt>--with-bz2</tt>).
</p>


<!-- INSTALLATION -->
<a name="setup"></a><br />
<h2>Installation</h2>

<p>
    <span class="important">NOTE: phpMyAdmin does not apply any special security
    methods to the MySQL database server. It is still the system administrator's job to
    grant permissions on the MySQL databases properly. </span>phpMyAdmin's
    &quot;Privileges&quot; page can be used for this.
</p>

<p>
    <span class="important">Warning for Mac users:</span>if you are on a MacOS
    version before OS X, StuffIt unstuffs with Mac formats.<br />
    So you'll have to resave as in BBEdit to Unix style ALL phpMyAdmin scripts
    before uploading them to your server, as PHP seems not to like Mac-style
    end of lines character (&quot;<tt>\r</tt>&quot;).
</p>

<h3>Quick Install</h3>
<ol>
    <li> Untar or unzip the distribution (be sure to unzip the subdirectories):
         <tt>tar -xzvf phpMyAdmin_x.x.x.tar.gz</tt> in your webserver's
         document root. If you don't have direct access to your document root,
         put the files in a directory on your local machine, and, after step 3,
         transfer the directory on your web server using, for example, ftp.</li>
    <li> Ensure that all the scripts have the appropriate owner (if PHP is
         running in safe mode, having some scripts with an owner different
         from the owner of other scripts will be a
         problem). See <a href="#faq4_2">FAQ 4.2</a> for suggestions.</li>
    <li> Create the file <tt>config.inc.php</tt> in your favorite editor and
         fill in there values for host, user, password and authentication mode
         to fit your environment. Look at <tt>config.default.php</tt> how
         these fields should be defined. Here, &quot;host&quot; means the
         MySQL server. Have a look at
         <a href="#config">Configuration section</a> for an
         explanation of all values. Please also read the remaining of this
         Installation section for information about authentication modes
         and the linked-tables infrastructure.</li>
    <li> If you are using the config auth_type, it is suggested that you protect the
         phpMyAdmin installation directory, for example with HTTP&#8211;AUTH in a
         <i>.htaccess</i> file. See the <a href="#faqmultiuser">
         multi&#8211;user sub&#8211;section</a> of this FAQ for additional
         information, especially <a href="$faq4_4">FAQ 4.4</a>.</li>
    <li> Open the file
         <i>&lt;www.your-host.com&gt;/&lt;your-install-dir&gt;/index.php</i>
         in your browser. phpMyAdmin should now display a welcome screen
         and your databases, or a login dialog if using HTTP or cookie
         authentication mode.</li>
</ol>
<a name="linked-tables"></a>
<h3>Linked-tables infrastructure</h3>
 <p>
     For a whole set of new features (bookmarks, comments, SQL-history,
     PDF-generation, field contents transformation, etc.)
     you need to create a set of special tables. Those tables can be located
     in your own database, or in a central database for a multi-user
     installation (this database would then be accessed by the controluser,
     so no other user should have rights to it).
     <br /> <br />
     Please look at your scripts/
         directory, where you should find a file called <i>create_tables.sql</i>.
         (If you are using a Windows server, pay special attention to <a href="#faq1_23">FAQ 1.23</a>).
     <br /> <br />
         If your MySQL server's version is 4.1.2 or later, please use
         <i>create_tables_mysql_4_1_2+.sql</i> instead, for a new installation.
     <br /> <br />
         If you already had this infrastructure and upgraded to MySQL 4.1.2
         or later, please use <i>upgrade_tables_mysql_4_1_2+.sql</i>.
     <br /> <br />
         You can use your phpMyAdmin to create the tables for you. Please be
         aware that you may need special (administrator) privileges to create
         the database and tables, and that the script may need some tuning,
         depending on the database name.
     <br /> <br />
      After having imported the <i>create_tables.sql</i> file,
      you should specify the table names in your <i>config.inc.php</i> file. The directives
         used for that can be found in the <a href="#config">Configuration section</a>.
         You will also need to have a controluser with the proper rights to
         those tables (see section <i>Using authentication modes</i> below).
 </p>

<h3>Upgrading from an older version</h3>
<p>
        Just copy <i>config.inc.php</i> from previous installation into a
        newly unpacked one. If your previous phpMyAdmin version was 2.3.0 or
        older, some tweaking may be required because, as of 2.7.0, using those
        old config files is no longer supported.
</p>

<h3>Using authentication modes</h3>
<ul>
    <li>HTTP and cookie authentication modes are recommended in a <b>multi-user
        environment</b> where you want to give users access to their own
        database and don't want them to play around with others.
        <br />
        Nevertheless be aware that MS Internet Explorer seems to be really
        buggy about cookies, at least till version 6. And PHP 4.1.1 is also a
        bit buggy in this area!<br />
        Even in a <b>single-user environment</b>, you might prefer to use
        HTTP or cookie mode so that your user/password pair are not in clear
        in the configuration file.<br /><br /></li> 
    <li>HTTP and cookie authentication modes are more secure: the MySQL
        login information does not need to be set in the phpMyAdmin
        configuration file
        (except possibly for the <a href="#controluser">controluser</a>).
        <br />
        However, keep in mind that the password travels in plain text, unless
        you are using the HTTPS protocol.
        <br />
        In cookie mode, the password is stored, encrypted with the blowfish
        algorithm, in a temporary cookie.
        <br /><br /></li>

    <li>
        <b>Note: starting with phpMyAdmin 2.6.1, configuring the controluser
        to enable HTTP and cookie authentication applies <i>only
		to MySQL servers older than 4.1.2</i>.</b> See the <a href="#controluser">controluser</a> directive.
        <br /><br />
        For 'HTTP' and 'cookie' modes, phpMyAdmin needs a controluser that has
        <b>only</b> the <tt>SELECT</tt> privilege on the <i>mysql.user (all
        columns except &quot;Password&quot;)</i>, <i>mysql.db (all
        columns)</i>, <i>mysql.host (all columns)</i> and
        <i>mysql.tables_priv (all columns except
        &quot;Grantor&quot; &amp; &quot;Timestamp&quot;) </i>tables.<br /> You
        must specify the details for the <a href="#controluser">controluser</a>
        in the <i>config.inc.php</i> file under the
        <tt>$cfg['Servers'][$i]['controluser']</tt>&amp;
        <tt>$cfg['Servers'][$i]['controlpass']</tt> settings.<br /> The
        following example assumes you want to use <tt>pma</tt> as the
        controluser and <tt>pmapass</tt> as the controlpass, but <b>this is
        only an example: use something else in your file!</b><br /> Of course
        you have to replace <tt>localhost</tt> by the webserver's host if it's
        not the same as the MySQL server's one.
        <pre>

GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
GRANT SELECT (
    Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
    Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
    File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
    Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
    Execute_priv, Repl_slave_priv, Repl_client_priv
    ) ON mysql.user TO 'pma'@'localhost';
GRANT SELECT ON mysql.db TO 'pma'@'localhost';
GRANT SELECT ON mysql.host TO 'pma'@'localhost';
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
    ON mysql.tables_priv TO 'pma'@'localhost';
        </pre>
        If you are using an old MySQL version (below 4.0.2), please replace
        the first GRANT SELECT query by this one:
        <pre>

GRANT SELECT (
    Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
    Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
    File_priv, Grant_priv, References_priv, Index_priv, Alter_priv
    ) ON mysql.user TO 'pma'@'localhost';
        </pre>
        ... and if you want to use the many new relation and bookmark
        features:
        <pre>

GRANT SELECT, INSERT, UPDATE, DELETE ON &lt;pma_db&gt;.* TO 'pma'@'localhost';
        </pre>
	(this of course requires that your <a href="#linked-tables">linked-tables infrastructure</a> be set up).
        <br />
        Of course, the above queries only work if your MySQL version supports
        the GRANT command. This is the case since 3.22.11.
    </li>
    <li>
        Then each of the <i>true</i> users should be granted a set of
        privileges on a set of particular databases. Normally you shouldn't
        give global privileges to an ordinary user, unless you understand
        the impact of those privileges (for example, you are creating
        a superuser).<br />
        For example, to grant the user <i>real_user</i> with
        all privileges on the database <i>user_base</i>:<br />
        &nbsp;&nbsp;&nbsp;<tt>GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';</tt>
        <br />
        What the user may now do is controlled entirely by the MySQL user
        management system.<br />
        With HTTP or cookie authentication mode, you don't need to fill the
        user/password fields inside the <tt>$cfg['Servers']</tt> array.<br />
    </li>
</ul>

<h4>'http' authentication mode</h4>
<ul>
    <li>Was called 'advanced' in versions before 2.2.3.</li>
    <li>Introduced in 1.3.0, it uses Basic HTTP authentication method and
        allows you to login as any valid MySQL user.</li>
    <li>Is supported with PHP running as an Apache module. For IIS (ISAPI)
        support using CGI PHP, see <a href="#faq1_32">FAQ 1.32</a>.</li>
    <li>See also <a href="#faq4_4">FAQ 4.4</a> about not using the <i>.htaccess</i> mechanism along
        with 'http' authentication mode.</li>
</ul>

<h4>'cookie' authentication mode</h4>
<ul>
    <li>You can use this method as a replacement for the HTTP
        authentication (for example, if you're running IIS).
    </li>
    <li>Obviously, the user must enable cookies in the browser.</li>
    <li>With this mode, the user can truly logout of phpMyAdmin and login back
        with the same username.</li>
    <li>If you want to login to arbitrary server see
    <tt><a href="#AllowArbitraryServer">$cfg['AllowArbitraryServer']</a></tt> directive.</li>
    <li>As mentioned in the <a href="#require">requirements</a> section, having the 
        <tt>mcrypt</tt> extension will speed up access considerably, but is not required.</li>
</ul> 
<h4>'config' authentication mode</h4>
<ul>
    <li>This mode is the less secure one because it requires you to fill the
        <tt><a href="#servers_user">$cfg['Servers'][$i]['user']</a></tt> and
        <tt><a href="#servers_user">$cfg['Servers'][$i]['password']</a></tt> fields
        (and as a result, anyone who can read your config.inc.php can discover your 
        username and password).<br />
        But you don't need to setup a &quot;controluser&quot; here:
        using the <tt><a href="#servers_only_db">$cfg['Servers'][$i]['only_db']</a></tt> might be enough.</li>
    <li>In the <a href="#faqmultiuser">ISP FAQ</a> section, there is an entry explaining how to protect
        your configuration file.<br /></li>
    <li>For additional security in this mode, you may wish to consider the
        Host authentication <tt><a href="#servers_allowdeny_order">$cfg['Servers'][$i]['AllowDeny']['order']</a></tt>
        and <tt><a href="#servers_allowdeny_rules">$cfg['Servers'][$i]['AllowDeny']['rules']</a></tt> configuration
        directives.</li>
</ul>


<!-- CONFIGURATION -->
<a name="config"></a><br />
<h2>Configuration</h2>

<p>
    <span class="important">Warning for Mac users:</span> PHP does not seem to like
    Mac end of lines character (&quot;<tt>\r</tt>&quot;). So ensure you choose
    the option that allows to use the *nix end of line character
    (&quot;<tt>\n</tt>&quot;) in your text editor before saving a script
    you have modified.
</p>

<p>
    <span class="important">Configuration note:</span>
    Almost all configurable data is placed in <tt>config.inc.php</tt>. If this file
    does not exist, please refer to the <a href="#setup">Quick install</a> 
    section to create one. This file only needs to contain the parameters you want to 
    change from their corresponding default value in <tt>config.default.php</tt>.
    <br /><br />
    The parameters which relate to design (like colors)
    are placed in <tt>themes/themename/layout.inc.php</tt>. You
    might also want to modify <i>config.footer.inc.php</i> and
    <i>config.header.inc.php</i> files to add your site specific code to be
    included on start and end of each page.
</p>

<dl>
    <dt><b>$cfg['PmaAbsoluteUri']</b> string</dt>
    <dd>
        Sets here the complete URL (with full path) to your phpMyAdmin 
        installation's directory.
        E.g. <tt>http://www.your_web.net/path_to_your_phpMyAdmin_directory/</tt>.
        Note also that the URL on some web servers are case&#8211;sensitive.
        Don&#8217;t forget the trailing slash at the end.
        <br /><br />
        Starting with version 2.3.0, it is advisable to try leaving this 
        blank. In most cases phpMyAdmin automatically detects the proper 
        setting. Users of port forwarding will need to set PmaAbsoluteUri (<a
        href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1340187&amp;group_id=23067&amp;atid=377409">more info</a>). 
        A good test is to browse a table, edit a row and save it. There should
        be an error message if phpMyAdmin is having trouble auto&#8211;detecting        the correct value. If you get an error that this must be set or if 
        the autodetect code fails to detect your path, please post a bug 
        report on our bug tracker so we can improve the code.
    </dd>

    <dt><b>$cfg['PmaNoRelation_DisableWarning']</b> boolean</dt>
    <dd>
        Starting with version 2.3.0 phpMyAdmin offers a lot of features to work
        with master / foreign - tables (see
        <a href="#pmadb">$cfg['Servers'][$i]['pmadb']</a>).
        <br />
        If you tried to set this up and it does not work for you, have a look on
        the &quot;Structure&quot; page of one database where you would like to
        use it. You will find a link that will analyze why those features have
        been disabled.<br />
        If you do not want to use those features set this variable to
        <tt>TRUE</tt> to stop this message from appearing.
    </dd>

    <dt><b>$cfg['blowfish_secret']</b> string</dt>
    <dd>
        Starting with version 2.5.2, the 'cookie' auth_type uses blowfish
        algorithm to encrypt the password.
        <br />
        If you are using the 'cookie' auth_type, enter here a random
        passphrase of your choice. It will be used internally by the blowfish
        algorithm: you won't be prompted for this passphrase. The maximum
        number of characters for this parameter seems to be 46.
  </dd>

    <dt><b>$cfg['Servers']</b> array</dt>
    <dd>
        Since version 1.4.2, phpMyAdmin supports the administration of multiple
        MySQL servers.
        Therefore, a $cfg['Servers']-array has been added which contains
        the login information for the different servers. The first
        <tt>$cfg['Servers'][$i]['host']</tt> contains the hostname of the first
        server, the second <tt>$cfg['Servers'][$i]['host']</tt> the hostname of
        the second server, etc.
        In <tt>config.default.php</tt>, there is only one section for server
        definition, however you can put as many as you need in
        <tt>config.inc.php</tt>, copy that block or needed parts (you don't
        have to define all settings, just those you need to change).
    </dd>

    <dt><b>$cfg['Servers'][$i]['host']</b> string</dt>
    <dd>
        The hostname or IP address of your $i-th MySQL-server. E.g. localhost.
    </dd>

    <dt><b>$cfg['Servers'][$i]['port']</b> string</dt>
    <dd>
        The port-number of your $i-th MySQL-server. Default is 3306 (leave
        blank). If you use &quot;localhost&quot; as the hostname, MySQL
        ignores this port number and connects with the socket, so if you want
        to connect to a port different from the default port, use
        &quot;127.0.0.1&quot; or the real hostname in
        $cfg['Servers'][$i]['host'].
    </dd>

    <dt><b>$cfg['Servers'][$i]['socket']</b> string</dt>
    <dd>
        The path to the socket to use. Leave blank for default.
    </dd>

    <dt><b>$cfg['Servers'][$i]['connect_type']</b> string</dt>
    <dd>
        What type connection to use with the MySQL server. Your options are
        <tt>'socket'</tt> &amp; <tt>'tcp'</tt>. It defaults to 'tcp' as that
        is nearly guaranteed to be available on all MySQL servers, while
        sockets are not supported on some platforms.
        <br /><br />
        To use the socket mode, your MySQL server must be on the same machine
        as the Web server.
    </dd>

    <dt><b>$cfg['Servers'][$i]['extension']</b> string</dt>
    <dd>
        What php MySQL extension to use for the connection. Valid options are:
        <br /><br />
        <tt><i>mysql</i></tt>&nbsp;:&nbsp;
        The classic MySQL extension. This is the recommended and default
        method at this time.
        <br /><br />
        <tt><i>mysqli</i></tt>&nbsp;:&nbsp;
        The improved MySQL extension. This extension became available
        with php 5.0.0 and is the recommended way to connect to a server
        running MySQL 4.1.x.
        <br />
        Note: phpMyAdmin's MySQL 4.1 support is experimental!
    </dd>

    <dt><b>$cfg['Servers'][$i]['compress']</b> boolean</dt>
    <dd>
        Whether to use a compressed protocol for the MySQL server connection
        or not (experimental).<br />
        This feature requires PHP&nbsp;&gt;=&nbsp;4.3.0.
    </dd>

    <dt>
<a name="controluser"></a><br />
        <b>$cfg['Servers'][$i]['controluser']</b> string<br />
        <b>$cfg['Servers'][$i]['controlpass']</b> string
    </dt>
    <dd>
        <i>Note: starting with phpMyAdmin 2.6.1, configuring the controluser
        to enable HTTP and cookie authentication applies only
        to MySQL servers older than 4.1.2.</i>
        <br /><br />
        This special account is used for 2 distinct purposes: to make possible
        all relational features
        (see <a href="#pmadb">$cfg['Servers'][$i]['pmadb']</a>) and, for a
        MySQL server older than 4.1.2, to enable a multi-user installation
        (http or cookie authentication mode).
        <br /><br />
        When using HTTP or cookie authentication modes (or 'config'
        authentication mode since phpMyAdmin 2.2.1), you need to supply the
        details of a MySQL account that has <tt>SELECT</tt> privilege on the
        <i>mysql.user (all columns except &quot;Password&quot;)</i>,
        <i>mysql.db (all columns)</i> &amp; <i>mysql.tables_priv (all columns
        except &quot;Grantor&quot; &amp; &quot;Timestamp&quot;) </i>tables.
        This account is used to check what databases the user will see at
        login.
        <br />
        Please see the <a href="#setup">install section</a> on
        &quot;Using authentication modes&quot; for more information.
        <br /><br />
        Note that if you try login to phpMyAdmin with this
        &quot;controluser&quot;, you could get some errors, depending the exact
        privileges you gave to the &quot;controluser&quot;. phpMyAdmin does not
        support a direct login with the &quot;controluser&quot;.
        <br /><br />
        In phpMyAdmin versions before 2.2.5, those were called
        &quot;stduser/stdpass&quot;.
    </dd>

    <dt><b>$cfg['Servers'][$i]['auth_type']</b> string
    <tt>['http'|'cookie'|'config']</tt></dt>
    <dd>
        Whether config or cookie or http authentication should be used for this
        server.
        <ul>
            <li>
                'config' authentication
                (<tt>$auth_type&nbsp;=&nbsp;'config'</tt>) is the plain old
                way: username and password are stored in
                <i>config.inc.php</i>.
            </li>
            <li>
                'cookie' authentication mode
                (<tt>$auth_type&nbsp;=&nbsp;'cookie'</tt>) as introduced in
                2.2.3 allows you to log in as any valid MySQL user with the
                help of cookies. Username and password are stored in
                cookies during the session and password is deleted when it
                ends. This can also allow you to login in arbitrary server if
                <tt><a href="#AllowArbitraryServer">$cfg['AllowArbitraryServer']</a></tt> enabled.
            </li>
            <li>
                'http' authentication (was called 'advanced' in older versions)
                (<tt>$auth_type&nbsp;=&nbsp;'http'</tt>) as introduced in 1.3.0
                allows you to log in as any valid MySQL user via HTTP-Auth.
            </li>
        </ul><br />

        Please see the <a href="#setup">install section</a> on &quot;Using authentication modes&quot;
        for more information.
    </dd>
    <dt>
<a name="servers_user"></a><br />
        <b>$cfg['Servers'][$i]['user']</b> string<br />
        <b>$cfg['Servers'][$i]['password']</b> string
    </dt>
    <dd>
        When using auth_type = 'config', this is the user/password-pair
        which phpMyAdmin will use to connect to the
        MySQL server. This user/password pair is not needed when HTTP or
        cookie authentication is used and should be empty.
    </dd>
    <dt>
<a name="servers_only_db"></a><br />
      <b>$cfg['Servers'][$i]['only_db']</b> string or array
    </dt>
    <dd>
        If set to a (an array of) database name(s), only this (these) database(s)
        will be shown to the user. Since phpMyAdmin 2.2.1, this/these
        database(s) name(s) may contain MySQL wildcards characters
        (&quot;_&quot; and &quot;%&quot;): if you want to use literal instances
        of these characters, escape them (I.E. use <tt>'my\_db'</tt> and not
        <tt>'my_db'</tt>).<br />
        This setting is an efficient way to lower the server load since the
        latter does not need to send MySQL requests to build the available
        database list. But <span class="important">it does not replace the
        privileges rules of the MySQL database server</span>. If set, it just
        means only these databases will be displayed but
        <span class="important">not that all other databases can't be used.</span>
        <br /><br />
        An example of using more that one database:
        <tt>$cfg['Servers'][$i]['only_db'] = array('db1', 'db2'); </tt>
        <br /><br />
        As of phpMyAdmin 2.5.5 the order inside the array is used for sorting the
        databases in the left frame, so that you can individually arrange your databases.<br />
        If you want to have certain databases at the top, but don't care about the others, you do not
        need to specify all other databases. Use:
        <tt>$cfg['Servers'][$i]['only_db'] = array('db3', 'db4', '*');</tt>
        instead to tell phpMyAdmin that it should display db3 and db4 on top, and the rest in alphabetic
        order.
    </dd>

    <dt><b>$cfg['Servers'][$i]['verbose']</b> string</dt>
    <dd>
        Only useful when using phpMyAdmin with multiple server entries. If set,
        this string will be displayed instead of the hostname in the pull-down
        menu on the main page. This can be useful if you want to show only
        certain databases on your system, for example.
    </dd>

    <dt>
        <a name="pmadb"></a><br />
        <b>$cfg['Servers'][$i]['pmadb']</b> string
    </dt>
    <dd>
        The name of the database containing the linked-tables infrastructure.
        <br /><br />
        See the <a href="#linked-tables">Linked-tables infrastructure</a>
        section in this document to see the benefits of this infrastructure,
        and for a quick way of creating this database and the needed tables.
        <br /><br />
        If you are the only user of this phpMyAdmin installation, you can
        use your current database to store those special tables; in this
        case, just put your current database name in
        <tt>$cfg['Servers'][$i]['pmadb']</tt>. For a multi-user installation,
        set this parameter to the name of your central database containing
        the linked-tables infrastructure.
    </dd>

    <dt>
        <a name="bookmark"></a><br />
        <b>$cfg['Servers'][$i]['bookmarktable']</b> string
    </dt>
    <dd>
        Since release 2.2.0 phpMyAdmin allows to bookmark queries. This can be
        useful for queries you often run.<br /><br />

        To allow the usage of this functionality:
        <ul>
            <li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li>
            <li>enter the table name in
                <tt>$cfg['Servers'][$i]['bookmarktable']</tt></li>
        </ul><br />
    </dd>

    <dt>
        <a name="relation"></a><br />
        <b>$cfg['Servers'][$i]['relation']</b> string
    </dt>
    <dd>
        Since release 2.2.4 you can describe, in a special 'relation' table,
        which field is a key in another table (a foreign key). phpMyAdmin
        currently uses this to
        <ul>
           <li>
              make clickable, when you browse the master table, the data values
              that point to the foreign table;
           </li>
           <li>
              display in an optional tool-tip the &quot;display field&quot;
              when browsing the master table, if you move the mouse to a column
              containing a foreign key (use also the 'table_info' table);<br />
              (see <a href="#faqdisplay">FAQ 6.7</a>)
           </li>
           <li>
              in edit/insert mode, display a drop-down list of possible
              foreign keys (key value and &quot;display field&quot; are
              shown)<br />
              (see <a href="#faq6_21">FAQ 6.21</a>)
           </li>
           <li>
              display links on the table properties page, to check referential
              integrity (display missing foreign keys) for each described key;
           </li>
           <li>
              in query-by-example, create automatic joins (see <a href="#faq6_6">FAQ 6.6</a>)
           </li>
           <li>
              enable you to get a PDF schema of your database (also uses the
              table_coords table).
           </li>
        </ul>
        <br />

        The keys can be numeric or character.
        <br /><br />

        To allow the usage of this functionality:
        <ul>
            <li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li>
            <li>
                put the relation table name in
                <tt>$cfg['Servers'][$i]['relation']</tt>
            </li>
            <li>
                now as normal user open phpMyAdmin and for each one of your
                tables where you want to use this feature, click
                &quot;Structure/Relation view/&quot; and choose foreign fields.
            </li>
        </ul><br />
        Please note that in the current version, <tt>master_db</tt>
        must be the same as <tt>foreign_db</tt>.  Those fields have been put in
        future development of the cross-db relations.
    </dd>

    <dt>
        <a name="table_info"></a><br />
        <b>$cfg['Servers'][$i]['table_info']</b> string
    </dt>
    <dd>
        Since release 2.3.0 you can describe, in a special 'table_info'
        table, which field is to be displayed as a tool-tip when moving the
        cursor over the corresponding key.
        <br />
        This configuration variable will hold the name of this special
        table.
        To allow the usage of this functionality:
        <ul>
            <li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li>
            <li>
                put the table name in
                <tt>$cfg['Servers'][$i]['table_info']</tt>
            </li>
            <li>
                then for each table where you want to use this feature,
                click &quot;Structure/Relation view/Choose field to display&quot;
                to choose the field.
            </li>
        </ul><br />
        Usage tip: <a href="#faqdisplay">Display field</a>.
    </dd>
    <dt>
        <a name="table_coords"></a><br />
        <b>$cfg['Servers'][$i]['table_coords']</b> string<br />
        <b>$cfg['Servers'][$i]['pdf_pages']</b> string
    </dt>
    <dd>
        Since release 2.3.0 you can have phpMyAdmin create PDF pages showing
        the relations between your tables. To do this it needs two tables
        &quot;pdf_pages&quot; (storing information about the available PDF
        pages) and &quot;table_coords&quot; (storing coordinates where each
        table will be placed on a PDF schema output).
        <br /><br />
        You must be using the &quot;relation&quot; feature.
        <br /><br />
        To allow the usage of this functionality:
        <ul>
            <li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li>
            <li>
                put the correct table names in
                <tt>$cfg['Servers'][$i]['table_coords']</tt> and
                <tt>$cfg['Servers'][$i]['pdf_pages']</tt>
            </li>
        </ul><br />
        Usage tips: <a href="#faqpdf">PDF output</a>.
    </dd>

    <dt>
        <a name="col_com"></a><br />
        <b>$cfg['Servers'][$i]['column_info']</b> string
    </dt>
    <dd>
        <!-- This part requires a content update! -->
        Since release 2.3.0 you can store comments to describe each column
        for each table. These will then be shown on the &quot;printview&quot;.
        <br /><br />
        Starting with release 2.5.0, comments are consequently used on the table property
        pages and table browse view, showing up as tool-tips above the column name (properties page)
        or embedded within the header of table in browse view. They can also be shown
        in a table dump. Please see the relevant configuration directives later on.
        <br /><br />
        Also new in release 2.5.0 is a MIME-transformation system which is also based on
        the following table structure. See <a href="#transformations">Transformations</a>
        for further information. To use the MIME-transformation system, your column_info
        table has to have the three new fields 'mimetype', 'transformation', 'transformation_options'.
        <br /><br />
        To allow the usage of this functionality:
        <ul>
            <li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li>
            <li>
                put the table name in
                <tt>$cfg['Servers'][$i]['column_info']</tt>
            </li>
            <li>
                to update your PRE-2.5.0 Column_comments Table use this:<br />
                <tt>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALTER TABLE `pma_column_comments` <br />
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD `mimetype` VARCHAR( 255 ) NOT NULL ,<br />
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD `transformation` VARCHAR( 255 ) NOT NULL ,<br />
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD `transformation_options` VARCHAR( 255 ) NOT NULL ;<br />
                </tt>
                and remember that the Variable in <i>config.inc.php</i> has been renamed
                from <br /><tt>$cfg['Servers'][$i]['column_comments']</tt> to <tt>$cfg['Servers'][$i]['column_info']</tt>
            </li>
        </ul>
    </dd>

    <dt>
        <a name="history"></a><br />
        <b>$cfg['Servers'][$i]['history']</b> string
    </dt>
    <dd>
        Since release 2.5.0 you can store your SQL history, which means all queries you
        entered manually into the phpMyAdmin interface. If you don't want to use a table-
        based history, you can use the JavaScript-based history. Using that, all your
        history items are deleted when closing the window.<br /><br />

        Using <b>$cfg['QueryHistoryMax']</b> you can specify an amount of history items
        you want to have on hold. On every login, this list gets cut to the maximum amount.
        <br /><br />

	The query history is only available if JavaScript is enabled in your 
	browser.
        <br /><br />

        To allow the usage of this functionality:
        <ul>
            <li>set up <a href="#pmadb">pmadb</a> and the linked-tables infrastructure</li>
            <li>
                put the table name in
                <tt>$cfg['Servers'][$i]['history']</tt>
            </li>
        </ul>
    </dd>

    <dt>
        <b>$cfg['Servers'][$i]['verbose_check']</b> boolean
    </dt>
    <dd>
        Because release 2.5.0 introduced the new MIME-transformation support, the
        column_info table got enhanced with three new fields. If the above variable is
        set to <tt>TRUE</tt> (default) phpMyAdmin will check if you have the latest table structure
        available. If not, it will emit a warning to the superuser.<br /><br />

        You can disable this checking behavior by setting the variable to false, which
        should offer a performance increase.<br /><br />

        Recommended to set to FALSE, when you are sure, your table structure is up to date.
    </dd>
    <dt>
        <b>$cfg['Servers'][$i]['AllowRoot']</b> boolean
    </dt>
    <dd>
        Whether to allow root access, This is just simplification of rules below.
    </dd>
    <dt>
<a name="servers_allowdeny_order"></a><br />
        <b>$cfg['Servers'][$i]['AllowDeny']['order']</b> string
    </dt>
    <dd>
        If your rule order is empty, then IP authentication is disabled.
        <br /><br />
        If your rule order is set to <tt>'deny,allow'</tt> then the system
        applies all deny rules followed by allow rules.
        Access is allowed by default. Any client which does not match a Deny
        command or does match an Allow command will be allowed access to the
        server.
        <br /><br />
        If your rule order is set to <tt>'allow,deny'</tt> then the system
        applies all allow rules followed by deny rules. Access is denied by
        default.  Any client which does not match an Allow directive or does
        match a Deny directive will be denied access to the server.
        <br /><br />
        If your rule order is set to 'explicit', the authentication is
        performed in a similar fashion to rule order 'deny,allow', with the
        added restriction that your host/username combination <b>must</b> be
        listed in the <i>allow</i> rules, and not listed in the <i>deny</i>
        rules. This is the <b>most</b> secure means of using Allow/Deny rules,
        and was available in Apache by specifying allow and deny rules without
        setting any order.
    </dd>
    <dt>
<a name="servers_allowdeny_rules"></a><br />
        <b>$cfg['Servers'][$i]['AllowDeny']['rules']</b> array of strings
    </dt>
    <dd>
        The general format for the rules is as such:<br />
        <tt>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        &lt;'allow' | 'deny'&gt; &lt;username&gt; [from] &lt;ipmask&gt;
        </tt>
        <br /><br />

        If you wish to match all users, it is possible to use a <tt>'%'</tt> as
        a wildcard in the <i>username</i> field.<br />
        There are a few shortcuts you can use in the <i>ipmask</i> field as
        well (please note that those containing SERVER_ADDRESS might not be
        available on all webservers):<br /><br />
        <tt>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'all' -&gt; 0.0.0.0/0<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'localhost' -&gt; 127.0.0.1/8<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'localnetA' -&gt; SERVER_ADDRESS/8<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'localnetB' -&gt; SERVER_ADDRESS/16<br />
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'localnetC' -&gt; SERVER_ADDRESS/24
        </tt>
        <br /><br />

        Having an empty rule list is equivalent to either using
        <tt>'allow % from all'</tt> if your rule order is set to
        <tt>'deny,allow'</tt> or <tt>'deny % from all'</tt> if your rule order
        is set to <tt>'allow,deny'</tt> or <tt>'explicit'</tt>.
        <br /><br />

        For the IP matching system, the following work:<br />
        <tt>xxx.xxx.xxx.xxx</tt>        (an exact IP address)<br />
        <tt>xxx.xxx.xxx.[yyy-zzz]</tt>  (an IP address range)<br />
        <tt>xxx.xxx.xxx.xxx/nn</tt>     (CIDR, Classless Inter-Domain Routing type IP addresses)<br />
        But the following does not work:<br />
        <tt>xxx.xxx.xxx.xx[yyy-zzz]</tt> (partial IP address range)
    </dd>

    <dt><b>$cfg['ServerDefault']</b> integer</dt>
    <dd>
        If you have more than one server configured, you can set
        <tt>$cfg['ServerDefault']</tt> to any one of them to autoconnect to
        that server when phpMyAdmin is started, or set it to 0 to be given a
        list of servers without logging in.<br />
        If you have only one server configured, <tt>$cfg['ServerDefault']</tt>
        MUST be set to that server.
    </dd>

    <dt><b>$cfg['OBGzip'] </b>string/boolean</dt>
    <dd>
        Defines whether to use GZip output buffering for increased
        speed in HTTP transfers.<br />
        Set to true/false for enabling/disabling. When set to 'auto' (string),
        phpMyAdmin tries to enable output buffering and will automatically disable
        it, if your browser has some problems with buffering. IE6 with a certain patch
        is known to cause data corruption having enabled buffering.
    </dd>

    <dt><b>$cfg['PersistentConnections'] </b>boolean</dt>
    <dd>
        Whether persistent connections should be used or not (mysql_connect or
        mysql_pconnect).
    </dd>

    <dt><b>$cfg['ForceSSL'] </b>boolean</dt>
    <dd>
        Whether to force using https while accessing phpMyAdmin.
    </dd>

    <dt><b>$cfg['ExecTimeLimit'] </b>integer [number of seconds]</dt>
    <dd>
        Set the number of seconds a script is allowed to run. If seconds is set
        to zero, no time limit is imposed.<br />
        This setting is used while importing/exporting dump files but has no
        effect when PHP is running in safe mode.
    </dd>

    <dt><b>$cfg['SkipLockedTables'] </b>boolean</dt>
    <dd>
        Mark used tables and make it possible to show databases with locked
        tables (since 3.23.30).
    </dd>

    <dt><b>$cfg['ShowSQL'] </b>boolean</dt>
    <dd>
        Defines whether SQL-queries generated by phpMyAdmin should be displayed
        or not.
    </dd>

    <dt><b>$cfg['AllowUserDropDatabase'] </b>boolean</dt>
    <dd>
        Defines whether normal users (non-administrator) are allowed to
        delete their own database or not. If set as FALSE, the link &quot;Drop
        Database&quot; will not be shown, and even a &quot;DROP DATABASE
        mydatabase&quot; will be rejected. Quite practical for ISP's with many
        customers.
  </dd>

    <dt><b>$cfg['Confirm'] </b>boolean</dt>
    <dd>
        Whether a warning (&quot;Are your really sure...&quot;) should be
        displayed when you're about to lose data.
    </dd>

    <dt><b>$cfg['LoginCookieRecall'] </b>boolean</dt>
    <dd>
        Define whether the previous login should be recalled or not in cookie
        authentication mode.
    </dd>

    <dt><b>$cfg['UseDbSearch'] </b>boolean</dt>
    <dd>
        Define whether the "search string inside database" is enabled or not.
    </dd>

    <dt><b>$cfg['IgnoreMultiSubmitErrors'] </b>boolean</dt>
    <dd>
        Define whether phpMyAdmin will continue executing a multi-query
        statement if one of the queries fails. Default is to abort execution.
    </dd>

    <dt><b>$cfg['VerboseMultiSubmit'] </b>boolean</dt>
    <dd>
        Define whether phpMyAdmin will output the results of each query of a
        multi-query statement embedded into the SQL output as inline comments.
        Defaults to <tt>TRUE</tt>.
    </dd>
    <dt>
<a name="AllowArbitraryServer"></a><br />
<b>$cfg['AllowArbitraryServer'] </b>boolean</dt>
    <dd>
        If enabled allows you to login to arbitrary server using cookie auth.
        <br /><br />
        <b>NOTE:</b> Please use this carefully, as this may allow to access
        MySQL servers behind firewall where your http server is placed.
        <br /><br />
    </dd>

    <dt><b>$cfg['LeftFrameLight']</b> boolean</dt>
    <dd>
        Defines whether to use select-based menu and display only the current
        tables in the left frame (smaller page).
        Only in Non-Lightmode you can use the feature to display nested folders
        using $cfg['LeftFrameTableSeparator']
    </dd>

    <dt><b>$cfg['LeftFrameDBTree']</b> boolean</dt>
    <dd>
    In light mode, defines whether to display the names of databases (in the
    selector) using a tree, see also <tt>$cfg['LeftFrameDBSeparator']</tt>.
    </dd>

    <dt><b>$cfg['LeftFrameDBSeparator']</b> string</dt>
    <dd>
      The string used to separate the parts of the database name when showing
      them in a tree.
    </dd>

    <dt><b>$cfg['LeftFrameTableSeparator']</b> string</dt>
    <dd>
        Defines a string to be used to nest table spaces. Defaults to '__'.
        This means if you have tables like 'first__second__third' this will be
        shown as a three-level hierarchy like: first &gt; second &gt; third.
        If set to FALSE or empty, the feature is disabled.  NOTE: You shall
        not use this Separator in a table name at the beginning or end of a
        table name, or multiple times after another without any other
        characters in between.
    </dd>

    <dt><b>$cfg['LeftFrameTableLevel']</b> string</dt>
    <dd>
        Defines how many sublevels should be displayed when splitting
        up tables by the above Separator.
    </dd>

    <dt><b>$cfg['ShowTooltip'] </b>boolean</dt>
    <dd>
        Defines whether to display table comment as tool-tip in left frame or
        not.
    </dd>

    <dt><b>$cfg['ShowTooltipAliasDB'] </b>boolean</dt>
    <dd>
        If tool-tips are enabled and a DB comment is set, this will flip the
        comment and the real name. That means, if you have a table called
        'user0001' and add the comment 'MyName' on it, you will see the name
        'MyName' used consequently in the left frame and the tool-tip shows
        the real name of the DB.
    </dd>

    <dt><b>$cfg['ShowTooltipAliasTB'] </b>boolean/string</dt>
    <dd>
        Same as $cfg['ShowTooltipAliasDB'], except this works for table names.

        When setting this to 'nested', the Alias of the Tablename is only used
        to split/nest the tables according to the $cfg['LeftFrameTableSeparator']
        directive. So only the folder is called like the Alias, the tablename itself
        stays the real tablename.
        <br /><br />
    </dd>
    <dt><b>$cfg['LeftDisplayLogo'] </b>boolean</dt>
    <dd>Defines whether to display the phpMyAdmin logo at the top of the left frame or not.
      Defaults to <tt>TRUE</tt>.
    </dd>
    <dt><b>$cfg['LeftDisplayServers'] </b>boolean</dt>
    <dd>Defines whether to display a server choice at the top of the left frame or not.
      Defaults to FALSE.
    </dd>
    <dt><b>$cfg['DisplayServersList'] </b>boolean</dt>
    <dd>Defines whether to display this server choice as links instead of in a drop-down.
      Defaults to FALSE (drop-down). 
    </dd>
    <dt><b>$cfg['ShowStats'] </b>boolean</dt>
    <dd>
        Defines whether to display space usage and statistics about databases
        and tables or not.<br />
        Note that statistics requires at least MySQL 3.23.3 and that, at this
        date, MySQL doesn't return such information for Berkeley DB tables.
    </dd>

    <dt>
        <b>$cfg['ShowPhpInfo'] </b>boolean<br />
        <b>$cfg['ShowChgPassword'] </b>boolean
    </dt>
    <dd>
        Defines whether to display the &quot;PHP information&quot; and
        &quot;Change password &quot; links or not for simple users at the
        starting main (right) frame. This setting does not check MySQL
        commands entered directly.
        <br /><br />

        Please note that to block the usage of phpinfo() in scripts, you
        have to put this in your <i>php.ini</i>:<br />
        &nbsp;&nbsp;&nbsp;&nbsp;<tt>disable_functions = phpinfo()</tt>
        <br /><br />

        Also note that enabling the &quot;Change password &quot; link has no
        effect with &quot;config&quot; authentication mode: because of the
        hard coded password value in the configuration file, end users can't
        be allowed to change their passwords.
    </dd>

    <dt><b>$cfg['SuggestDBName']</b> boolean</dt>
    <dd>
        Defines whether to suggest a database name on the
        &quot;Create Database&quot; form or to keep the textfield empty.
    </dd>

    <dt><b>$cfg['ShowBlob'] </b>boolean</dt>
    <dd>
        Defines whether <tt>BLOB</tt> fields are shown when browsing a table's
        content or not.
    </dd>

    <dt><b>$cfg['NavigationBarIconic'] </b>string</dt>
    <dd>
    Defines whether navigation bar buttons and the right panel top menu contain text or symbols only. A value of TRUE displays icons, FALSE displays text and 'both' displays both icons and text.
    </dd>

    <dt><b>$cfg['ShowAll'] </b>boolean</dt>
    <dd>
        Defines whether an user should be displayed a
        &quot;show all (records)&quot; button in browse mode or not.
    </dd>

    <dt><b>$cfg['MaxRows'] </b>integer</dt>
    <dd>
        Number of rows displayed when browsing a result set. If the result set
        contains more rows, Previous/Next links will be shown.
    </dd>

    <dt><b>$cfg['Order'] </b>string [<tt>DESC</tt>|<tt>ASC</tt>|<tt>SMART</tt>]</dt>
    <dd>
        Defines whether fields are displayed in ascending (<tt>ASC</tt>) order,
        in descending (<tt>DESC</tt>) order or in a &quot;smart&quot;
        (<tt>SMART</tt>) order - I.E. descending order for fields of type TIME,
        DATE, DATETIME &amp; TIMESTAMP, ascending order else- by default.
    </dd>

    <dt><b>$cfg['ProtectBinary'] </b>boolean or string</dt>
    <dd>
        Defines whether <tt>BLOB</tt> or <tt>BINARY</tt> fields are protected
        from editing when browsing a table's content or not.
        Valid values are:<br />
        <ul>
          <li><tt>FALSE</tt> to allow editing of all fields;</li>
          <li><tt>'blob'</tt> to allow editing of all fields except <tt>BLOBS</tt>;</li>
          <li><tt>'all'</tt> to disallow editing of all <tt>BINARY</tt> or
          <tt>BLOB</tt> fields.</li>
        </ul>
    </dd>

    <dt><b>$cfg['ShowFunctionFields'] </b>boolean</dt>
    <dd>
        Defines whether MySQL functions fields should be displayed or not in
        edit/insert mode.
    </dd>

    <dt><b>$cfg['CharEditing'] </b>string</dt>
    <dd>
        Defines which type of editing controls should be used for CHAR and
        VARCHAR fields. Possible values are:
        <ul>
            <li>
                input - this allows to limit size of text to size of field in
                MySQL, but has problems with newlines in fields
            </li>
            <li>
                textarea - no problems with newlines in fields, but also no
                length limitations
            </li>
        </ul>
        Default is old behavior so input.
    </dd>

    <dt><b>$cfg['InsertRows']</b> integer</dt>
    <dd>
        Defines the maximum number of concurrent entries for the Insert page.
    </dd>

    <dt><b>$cfg['ForeignKeyMaxLimit']</b> integer</dt>
    <dd>
    If there are fewer items than this in the set of foreign keys, then a
    drop-down box of foreign keys is presented, in the style described by the 
    <b>$cfg['ForeignKeyDropdownOrder']</b> setting.
    </dd>

    <dt><b>$cfg['ForeignKeyDropdownOrder']</b> array</dt>
    <dd>
        For the foreign key drop-down fields, there are several methods of
        display, offering both the key and value data. The contents of the
        array should be one or both of the following strings:
        <i>'content-id'</i>, <i>'id-content'</i>.
    </dd>

    <dt>
        <b>$cfg['ZipDump'] </b>boolean<br />
        <b>$cfg['GZipDump'] </b>boolean<br />
        <b>$cfg['BZipDump'] </b>boolean
    </dt>
    <dd>
        Defines whether to allow the use of zip/GZip/BZip2 compression when
        creating a dump file or not.
    </dd>

    <dt>
        <b>$cfg['CompressOnFly'] </b>boolean<br />
    </dt>
    <dd>
        Defines whether to allow on the fly compression for GZip/BZip2
        compressed exports. This doesn't affect smaller dumps and allows to
        create larger dumps, that won't fit otherwise in memory due to php
        memory limit. Produced files contain more GZip/BZip2 headers, but all
        normal programs handle this correctly.
    </dd>

    <dt><b>$cfg['LightTabs'] </b>string</dt>
    <dd>
        If set to True, use less graphically intense tabs on the top of the
        mainframe.
    </dd>

    <dt><b>$cfg['PropertiesIconic'] </b>string</dt>
    <dd>
        If set to <tt>TRUE</tt>, will display icons instead of text for db and table
        properties links (like 'Browse', 'Select', 'Insert', ...).<br /> Can be set to <tt>'both'</tt> if you want icons AND text.<br />
        When set to <tt>FALSE</tt>, will only show text.
    </dd>

    <dt><b>$cfg['PropertiesNumColumns'] </b>integer</dt>
    <dd>
        How many columns will be utilized to display the tables on the
        database property view?  Default is 1 column. When setting this to a
        value larger than 1, the type of the database will be omitted for more
        display space.
    </dd>


    <dt><b>$cfg['DefaultTabServer'] </b>string</dt>
    <dd>
        Defines the tab displayed by default on server view. Possible
        values: &quot;main.php&quot; (recommended for multi-user setups),
        &quot;server_databases.php&quot;, &quot;server_status.php&quot;,
        &quot;server_variables.php&quot;, &quot;server_privileges.php&quot;
        or &quot;server_processlist.php&quot;.
    </dd>

    <dt><b>$cfg['DefaultTabDatabase'] </b>string</dt>
    <dd>
        Defines the tab displayed by default on database view. Possible
        values: &quot;db_details_structure.php&quot;,
        &quot;db_details.php&quot; or &quot;db_search.php&quot;.
    </dd>

    <dt><b>$cfg['DefaultTabTable'] </b>string</dt>
    <dd>
        Defines the tab displayed by default on table view. Possible
        values: &quot;tbl_properties_structure.php&quot;,
        &quot;tbl_properties.php&quot;, &quot;tbl_select.php&quot; or
        &quot;tbl_change.php&quot;.
    </dd>

    <dt><b>$cfg['MySQLManualBase']</b> string</dt>
    <dd>
        If set to an URL which points to the MySQL documentation (type depends
        on <tt>$cfg['MySQLManualType']</tt>), appropriate help links are
        generated.
        <br />
        See <a href="http://dev.mysql.com/doc/">MySQL Documentation page</a>
        for more information about MySQL manuals and their types.
    </dd>

    <dt><b>$cfg['MySQLManualType']</b> string</dt>
    <dd>
         Type of MySQL documentation:
         <ul>
            <li>viewable - &quot;viewable online&quot;, current one used on MySQL website</li>
            <li>searchable - &quot;Searchable, with user comments&quot;</li>
            <li>chapters - &quot;HTML, one page per chapter&quot;</li>
            <li>big - &quot;HTML, all on one page&quot;</li>
            <li>none - do not show documentation links</li>
        </ul>
    </dd>

    <dt><b>$cfg['DefaultLang'] </b>string</dt>
    <dd>
        Defines the default language to use, if not browser-defined or
        user-defined.<br />
        See the <i>select_lang.lib.php</i> script to know the valid values for
        this setting.
    </dd>

    <dt><b>$cfg['Lang'] </b>string</dt>
    <dd>
        Force: always use this language (must be defined in the
        <i>select_lang.lib.php</i> script).
    </dd>

    <dt><b>$cfg['FilterLanguages'] </b>string</dt>
    <dd>
        Limit list of available languages to those matching the given regular
        expression. For example if you want only Czech and English, you should
        set filter to <code>'^(cs|en)'</code>.
    </dd>

    <dt><b>$cfg['DefaultCharset'] </b>string</dt>
    <dd>
        Default character set to use for recoding of MySQL queries. This must be
        enabled and it's described by <tt>$cfg['AllowAnywhereRecoding']</tt>
        option.<br />
        You can give here any character set which is in
        <tt>$cfg['AvailableCharsets']</tt> array and this is just default
        choice, user can select any of them.
    </dd>

    <dt><b>$cfg['AllowAnywhereRecoding'] </b>boolean</dt>
    <dd>
        Allow character set recoding of MySQL queries. You need recode or iconv
        support (compiled in or module) in PHP to allow MySQL queries recoding
        and used language file must have it enabled (by default only these
        which are in Unicode, just to avoid losing some characters).
        <br /><br />
        Setting this to <tt>TRUE</tt> also activates a pull-down menu 
        in the Export page, to choose the character set when exporting a file.
    </dd>

    <dt><b>$cfg['RecodingEngine'] </b>string</dt>
    <dd>
        You can select here which functions will be used for character set
        conversion.
        Possible values are:<br />
        <ul>
            <li>auto   - automatically use available one (first is tested
                iconv, then recode)</li>
            <li>iconv  - use iconv or libiconv functions</li>
            <li>recode - use recode_string function</li>
        </ul>
        Default is auto.
    </dd>

    <dt><b>$cfg['IconvExtraParams'] </b>string</dt>
    <dd>
        Specify some parameters for iconv used in charset conversion. See
        <a href="http://www.gnu.org/software/libiconv/documentation/libiconv/iconv_open.3.html">iconv
        documentation</a> for details.
    </dd>

    <dt><b>$cfg['AvailableCharsets'] </b>array</dt>
    <dd>
        Available character sets for MySQL conversion. You can add your own (any of
        supported by recode/iconv) or remove these which you don't use.
        Character sets will be shown in same order as here listed, so if you
        frequently use some of these move them to the top.
    </dd>

    <dt><b>$cfg['GD2Available'] </b>string</dt>
    <dd>
        Specifies whether GD &gt;= 2 is available. If yes it can be used for
        MIME transformations.<br />
        Possible values are:<br />
        <ul>
            <li>
                auto   - automatically detect, this is a bit expensive
                operation for php &lt; 4.3.0 so it is preferred to change this
                according to your server real possibilities
            </li>
            <li>yes - GD 2 functions can be used</li>
            <li>no - GD 2 function cannot be used</li>
        </ul>
        Default is auto.
    </dd>

    <dt><b>$cfg['LeftWidth'] </b>integer</dt>
    <dd>
        Left frame width in pixel. See <tt>themes/themename/layout.inc.php</tt>.
    </dd>

    <dt>
        <b>$cfg['LeftBgColor'] </b>string [HTML color]<br />
        <b>$cfg['RightBgColor'] </b>string [HTML color]
    </dt>
    <dd>
        The background colors (HTML) used for both the frames.
        See <tt>themes/themename/layout.inc.php</tt>.
    </dd>

    <dt>
        <b>$cfg['RightBgImage'] </b>string
    </dt>
    <dd>
        The URI of the background image used for the right frame. It must be
        an absolute URI. See <tt>themes/themename/layout.inc.php</tt>.
    </dd>

    <dt><b>$cfg['LeftPointerColor'] </b>string [HTML color]</dt>
    <dd>
        The color (HTML) used for the pointer in the left frame (does not work
        with Netscape 4). See <tt>themes/themename/layout.inc.php</tt>.
    </dd>

    <dt><b>$cfg['LeftPointerEnable'] </b>boolean</dt>
    <dd>
        A value of <tt>TRUE</tt> activates the left pointer (when LeftFrameLight is <tt>FALSE</tt>).
    </dd>

    <dt><b>$cfg['Border'] </b>integer</dt>
    <dd>
        The size of a table's border. See <tt>themes/themename/layout.inc.php</tt>.
    </dd>

    <dt><b>$cfg['ThBgcolor'] </b>string [HTML color]</dt>
    <dd>
        The color (HTML) used for table headers. See <tt>themes/themename/layout.inc.php</tt>.
    </dd>

    <dt><b>$cfg['BgcolorOne'] </b>string [HTML color]</dt>
    <dd>
        The color (HTML) #1 for table rows. See <tt>themes/themename/layout.inc.php</tt>.
    </dd>

    <dt><b>$cfg['BgcolorTwo'] </b>string [HTML color]</dt>
    <dd>
        The color (HTML) #2 for table rows. See <tt>themes/themename/layout.inc.php</tt>.
    </dd>

    <dt>
        <b>$cfg['BrowsePointerColor'] </b>string [HTML color]<br />
        <b>$cfg['BrowseMarkerColor'] </b>string [HTML color]
    </dt>
    <dd>
        The colors (HTML) uses for the pointer and the marker in browse mode
        (does not work with Netscape 4).<br />
        The former feature highlights the row over which your mouse is passing
        and the latter lets you visually mark/unmark rows by clicking on
        them.<br />
        See <tt>themes/themename/layout.inc.php</tt>.
    </dd>

    <dt><b>$cfg['BrowsePointerEnable'] </b>boolean</dt>
    <dd>
        Whether to activate the browse pointer or not.
    </dd>

    <dt><b>$cfg['BrowseMarkerEnable'] </b>boolean</dt>
    <dd>
        Whether to activate the browse marker or not.
    </dd>

    <dt>
        <b>$cfg['TextareaCols'] </b>integer<br />
        <b>$cfg['TextareaRows'] </b>integer<br />
        <b>$cfg['CharTextareaCols'] </b>integer<br />
        <b>$cfg['CharTextareaRows'] </b>integer
    </dt>
    <dd>
        Number of columns and rows for the textareas.<br />
        This value will be emphasized (*2) for SQL query textareas and (*1.25) for
        SQL textareas inside the query window.<br />
        The Char* values are used for CHAR and VARCHAR editing (if configured
        via $cfg['CharEditing']).
    </dd>

    <dt>
        <b>$cfg['LongtextDoubleTextarea'] </b>boolean
    </dt>
    <dd>
        Defines whether textarea for LONGTEXT fields should have double size.
    </dd>

    <dt>
        <b>$cfg['TextareaAutoSelect'] </b>boolean
    </dt>
    <dd>
        Defines if the whole textarea of the query box will be selected on
        click.
    </dd>
    <dt>
<a name="CtrlArrowsMoving"></a><br />
        <b>$cfg['CtrlArrowsMoving'] </b>boolean
    </dt>
    <dd>
        Enable Ctrl+Arrows (Option+Arrows in Safari) moving between fields when editing.
    </dd>

    <dt><b>$cfg['LimitChars'] </b>integer</dt>
    <dd>
        Maximal number of Chars showed in any non-numeric
        field on browse view. Can be turned off by a toggle button on the
        browse page.
    </dd>

    <dt>
        <b>$cfg['ModifyDeleteAtLeft'] </b>boolean
        <b>$cfg['ModifyDeleteAtRight'] </b>boolean
    </dt>
    <dd>
        Defines the place where modify and delete links would be put when
        tables contents are displayed (you may have them displayed both at the
        left and at the right).
        &quot;Left&quot; and &quot;right&quot; are parsed as &quot;top&quot;
        and &quot;bottom&quot; with vertical display mode.
    </dd>

    <dt><b>$cfg['DefaultDisplay'] </b>string
        <b>$cfg['HeaderFlipType'] </b>string
    </dt>
    <dd>
        There are 3 display modes: horizontal, horizontalflipped and vertical.
        Define which one is displayed by default. The first mode displays each
        row on a horizontal line, the second rotates the headers by 90
        degrees, so you can use descriptive headers even though fields only
        contain small values and still print them out. The vertical mode sorts
        each row on a vertical lineup.
        <br /><br />
        The HeaderFlipType can be set to 'css' or 'faked'. When using 'css'
        the rotation of the header for horizontalflipped is done via CSS. If
        set to 'faked' PHP does the transformation for you, but of course this
        does not look as good as CSS.
    </dd>
    <dt>

<a name="DefaultPropDisplay"></a><br />
<b>$cfg['DefaultPropDisplay'] </b>string</dt>
    <dd>
        When editing/creating new columns in a table all fields normally get
        lined up one field a line. (default: 'horizontal'). If you set this to
        'vertical' you can have each field lined up vertically beneath each
        other. You can save up a lot of place on the horizontal direction and
        no longer have to scroll.
    </dd>

    <dt><b>$cfg['ShowBrowseComments'] </b>boolean<br />
        <b>$cfg['ShowPropertyComments'] </b>boolean
    </dt>
    <dd>
        By setting the corresponding variable to <tt>TRUE</tt> you can enable the
        display of column comments in Browse or Property display. In browse
        mode, the comments are show inside the header. In property mode,
        comments are displayed using a CSS-formatted dashed-line below the
        name of the field. The comment is shown as a tool-tip for that field.
    </dd>

    <dt><b>$cfg['UploadDir'] </b>string</dt>
    <dd>
        The name of the directory where SQL files have been uploaded by other
        means than phpMyAdmin (for example, ftp).  Those files are available
        under a drop-down box when you click the database name, then the SQL
        tab.
        <br /><br />
        If you want different directory for each user, %u will be replaced
        with username.
        <br /><br />
        Please note that the file names must have the suffix &quot;.sql&quot;
        (or &quot;.sql.bz2&quot; or &quot;.sql.gz&quot; if support for
        compressed formats is enabled).
        <br /><br />
        This feature is useful when your file is too big to be uploaded via
        HTTP, or when file uploads are disabled in PHP.
        <br /><br />
        Please note that if PHP is running in safe mode, this directory must
        be owned by the same user as the owner of the phpMyAdmin scripts.
        <br /><br />
        See also <a href="#faq1_16">FAQ 1.16</a> for alternatives.
    </dd>

    <dt><b>$cfg['docSQLDir'] </b>string</dt>
    <dd>
        The name of the directory where docSQL files can be uploaded for
        import into phpMyAdmin.
        <br /><br />
        Please note that if PHP is running in safe mode, this directory must
        be owned by the same user as the owner of the phpMyAdmin scripts.
    </dd>

    <dt><b>$cfg['SaveDir'] </b>string</dt>
    <dd>
        The name of the directory where dumps can be saved.
        <br /><br />
        If you want different directory for each user, %u will be replaced
        with username.
        <br /><br />
        Please note that the directory has to be writable for user running
        webserver.
        <br /><br />
        Please note that if PHP is running in safe mode, this directory must
        be owned by the same user as the owner of the phpMyAdmin scripts.
    </dd>

    <dt><b>$cfg['TempDir'] </b>string</dt>
    <dd>
        The name of the directory, where temporary files can be stored.
        <br /><br />
        This is needed for native MS Excel export, see <a href="#faq6_23">FAQ
        6.23</a>
    </dd>

    <dt><b>$cfg['Export'] </b>array</dt>
    <dd>
        In this array are defined default parameters for export, names of
        items are similar to texts seen on export page, so you can easily
        identify what they mean.
    </dd>

    <dt><b>$cfg['Import'] </b>array</dt>
    <dd>
        In this array are defined default parameters for import, names of
        items are similar to texts seen on import page, so you can easily
        identify what they mean.
    </dd>

    <dt><b>$cfg['RepeatCells'] </b>integer</dt>
    <dd>
        Repeat the headers every X cells, or 0 to deactivate.
    </dd>

    <dt><b>$cfg['EditInWindow'] </b>boolean<br />
        <b>$cfg['QueryWindowWidth'] </b>integer<br />
        <b>$cfg['QueryWindowHeight'] </b>integer<br />
        <b>$cfg['QueryHistoryDB'] </b>boolean<br />
        <b>$cfg['QueryWindowDefTab'] </b>string<br />
        <b>$cfg['QueryHistoryMax'] </b>integer
    </dt>
    <dd>
    All those variables affect the query window feature. A <tt>SQL</tt> link 
    or icon is always displayed on the left panel. If JavaScript is enabled in 
    your browser, a click on this opens a distinct query window, which is
    a direct interface to enter SQL queries. Otherwise, the right panel 
    changes to display a query box. 
        <br /><br />
        The size of this query window can be customized with 
	<tt>$cfg['QueryWindowWidth']</tt> and <tt>$cfg['QueryWindowWidth']</tt>
	- both integers for the size in pixels. Note that normally, those
	parameters will be modified in <tt>layout.inc.php</tt> for the
	theme you are using.
        <br /><br />
	If <tt>$cfg['EditInWindow']</tt> is set to true, a click on [Edit] 
	from the results page (in the &quot;Showing Rows&quot; section) 
	opens the query window and puts the current query
        inside it.  If set to false, clicking on the link puts the SQL
        query in the right panel's query box.
        <br /><br />
        The usage of the JavaScript query window is recommended if you have a
        JavaScript enabled browser. Basic functions are used to exchange quite
        a few variables, so most 4th generation browsers should be capable to
        use that feature. It currently is only tested with Internet Explorer 6
        and Mozilla 1.x.
        <br /><br />
        If $cfg['QueryHistoryDB'] is set to <tt>TRUE</tt>, all your Queries are logged
        to a table, which has to be created by you (see <a
        href="#history">$cfg['Servers'][$i]['history']</a>).  If set to FALSE,
        all your queries will be appended to the form, but only as long as
        your window is opened they remain saved.
        <br /><br />
        When using the JavaScript based query window, it will always get
        updated when you click on a new table/db to browse and will focus if
        you click on "Edit SQL" after using a query. You can suppress updating
        the query window by checking the box "Do not overwrite this query from
        outside the window" below the query textarea. Then you can browse
        tables/databases in the background without losing the contents of the
        textarea, so this is especially useful when composing a query with
        tables you first have to look in. The checkbox will get automatically
        checked whenever you change the contents of the textarea. Please
        uncheck the button whenever you definitely want the query window to
        get updated even though you have made alterations.
        <br /><br />
        If $cfg['QueryHistoryDB'] is set to <tt>TRUE</tt> you can specify the amount of
        saved history items using $cfg['QueryHistoryMax'].
        <br /><br />
        The query window also has a custom tabbed look to group the features.
        Using the variable $cfg['QueryWindowDefTab'] you can specify the
        default tab to be used when opening the query window. It can be set to
        either 'sql', 'files', 'history' or 'full'.
    </dd>

    <dt><b>$cfg['BrowseMIME'] </b>boolean</dt>
    <dd>
        Enable <a href="#transformations">MIME-transformations</a>.
    </dd>

    <dt><b>$cfg['MaxExactCount'] </b>integer</dt>
    <dd>
        Determines for how large tables phpMyAdmin should get exact row count by
    <code>SELECT COUNT</code>. If approximate row count is smaller than this
    value, <code>SELECT COUNT</code> will be used, otherwise only value
    returned by <code>SHOW TABLE STATUS</code>. This has currently an impact
    only on InnoDB tables.
    </dd>

    <dt><a name="wysiwyg"></a>
    <b>$cfg['WYSIWYG-PDF'] </b>boolean</dt>
    <dd>
        Utilizes a WYSIWYG editing control to easily place elements of a PDF
        page.  By clicking on the button 'toggle scratchboard' on the page
        where you edit x/y coordinates of those elements you can activate a
        scratchboard where all your elements are placed. By clicking on an
        element, you can move them around in the pre-defined area and the x/y
        coordinates will get updated dynamically. Likewise, when entering a
        new position directly into the input field, the new position in the
        scratchboard changes after your cursor leaves the input field.
        <br />
        You have to click on the 'OK'-button below the tables to save the new
        positions.  If you want to place a new element, first add it to the
        table of elements and then you can drag the new element around.
        <br />
        By changing the paper size and the orientation you can change the size
        of the scratchboard as well. You can do so by just changing the
        dropdown field below, and the scratchboard will resize automatically,
        without interfering with the current placement of the elements.
        <br />
        If ever an element gets out of range you can either enlarge the paper
        size or click on the 'reset' button to place all elements below each
        other.
        <br />
        <b>NOTE:</b> You have to use a recent browser like IE6 or Mozilla to
        get this control to work. The basic Drag&amp;Drop script functionality
        was kindly borrowed from www.youngpup.net and is underlying so
        specific license.
    </dd>

    <dt><b>$cfg['NaturalOrder'] </b>boolean</dt>
    <dd>
        Sorts database and table names according to natural order (for example,
        t1, t2, t10). Currently implemented in the left panel (Light mode)
        and in Database view, for the table list.
    </dd>

    <dt><b>$cfg['ShowHttpHostTitle'] </b>boolean</dt>
    <dd>
        Shows the HTTP host name in window's title bar.
    </dd>

    <dt><b>$cfg['SetHttpHostTitle'] </b>string</dt>
    <dd>
        If <tt>$cfg['ShowHttpHostTitle']</tt> is <tt>TRUE</tt>, it shows the real
        HTTP host name, unless an alternate name is set here.
    </dd>

    <dt><b>$cfg['ErrorIconic'] </b>boolean</dt>
    <dd>
        Uses icons for warnings, errors and informations.
    </dd>

    <dt><b>$cfg['MainPageIconic'] </b>boolean</dt>
    <dd>
        Uses icons on main page in lists and menu tabs.
    </dd>

    <dt><b>$cfg['ReplaceHelpImg'] </b>boolean</dt>
    <dd>
        Shows a help button instead of the &quot;Documentation&quot; message.
    </dd>

    <dt><b>$cfg['ThemePath'] </b>string</dt>
    <dd>
        If theme manager is active, use this as the path of the subdirectory
        containing all the themes.
    </dd>

    <dt><b>$cfg['ThemeManager'] </b>boolean</dt>
    <dd>
        Enables user-selectable themes. See <a href="#faqthemes">FAQ 2.7</a>.
    </dd>

    <dt><b>$cfg['ThemeDefault'] </b>string</dt>
    <dd>
        The default theme (a subdirectory under <tt>cfg['ThemePath']</tt>).
    </dd>

    <dt><b>$cfg['ThemePerServer'] </b>boolean</dt>
    <dd>
        Whether to allow different theme for each server.
    </dd>

    <dt><b>$cfg['DefaultQueryTable']</b> string<br />
        <b>$cfg['DefaultQueryDatabase']</b> string
    </dt>
    <dd>
        Default queries that will be displayed in query boxes when user didn't
        specify any. Use %d for database name, %t for table name and %f for a
        comma separated list of field names. Note that %t and %f are only
        applicable to $cfg['DefaultQueryTable'].
    </dd>

    <dt><b>$cfg['SQP']['fmtType']</b> string [<tt>html</tt>|<tt>none</tt>]</dt>
    <dd>
        The main use of the new SQL Parser is to pretty-print SQL queries. By
        default we use HTML to format the query, but you can disable this by
        setting this variable to <tt>'none'</tt>.
    </dd>

    <dt><b>$cfg['SQP']['fmtInd']</b> float<br />
    <b>$cfg['SQP']['fmtIndUnit']</b> string [<tt>em</tt>|<tt>px</tt>|<tt>pt</tt>|<tt>ex</tt>]</dt>
    <dd>
    For the pretty-printing of SQL queries, under some cases the part of a
    query inside a bracket is indented. By changing
    <tt>$cfg['SQP']['fmtInd']</tt> you can change the amount of this indent.
    <br />Related in purpose is <tt>$cfg['SQP']['fmtIndUnit']</tt> which
    specifies the units of the indent amount that you specified. This is
    used via stylesheets.
    </dd>

    <dt><b>$cfg['SQP']['fmtColor']</b> array of string tuples</dt>
    <dd>
    This array is used to define the colours for each type of element of
    the pretty-printed SQL queries. The tuple format is<br />
    <i>class</i> =&gt; [<i>HTML colour code</i> | <i>empty string</i>]<br />
    If you specify an empty string for the color of a class, it is ignored
    in creating the stylesheet.
    You should not alter the class names, only the colour strings.<br />
    <b>Class name key:</b><br />
    <ul>
        <li><b>comment</b> Applies to all comment sub-classes</li>
        <li><b>comment_mysql</b> Comments as <tt>"#...\n"</tt></li>
        <li><b>comment_ansi</b> Comments as <tt>"-- ...\n"</tt></li>
        <li><b>comment_c</b> Comments as <tt>"/*...*/"</tt></li>
        <li><b>digit</b> Applies to all digit sub-classes</li>
        <li><b>digit_hex</b> Hexadecimal numbers</li>
        <li><b>digit_integer</b> Integer numbers</li>
        <li><b>digit_float</b> Floating