game/pma12111211/libraries/database_interface.inc.php

88 lines
2.4 KiB
PHP

<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Creates the database interface required for database interctions
* and add it to GLOBALS.
*
* @package PhpMyAdmin-DBI
*/
if (! defined('PHPMYADMIN')) {
exit;
}
require_once './libraries/DatabaseInterface.class.php';
$extension = null;
if (defined('TESTSUITE')) {
/**
* For testsuite we use dummy driver which can fake some queries.
*/
include_once './libraries/dbi/DBIDummy.class.php';
$extension = new PMA_DBI_Dummy();
} else {
/**
* check for requested extension
*/
$extensionName = $GLOBALS['cfg']['Server']['extension'];
if (! PMA_DatabaseInterface::checkDbExtension($extensionName)) {
// if it fails try alternative extension ...
// and display an error ...
$docurl = PMA_Util::getDocuLink('faq', 'faqmysql');
$doclink = sprintf(
__('See %sour documentation%s for more information.'),
'[a@' . $docurl . '@documentation]',
'[/a]'
);
/**
* @todo add different messages for alternative extension
* and complete fail (no alternative extension too)
*/
PMA_warnMissingExtension(
$extensionName,
false,
$doclink
);
if ($extensionName === 'mysql') {
$alternativ_extension = 'mysqli';
} else {
$alternativ_extension = 'mysql';
}
if (! PMA_DatabaseInterface::checkDbExtension($alternativ_extension)) {
// if alternative fails too ...
PMA_warnMissingExtension(
$extensionName,
true,
$doclink
);
}
$GLOBALS['cfg']['Server']['extension'] = $alternativ_extension;
unset($alternativ_extension);
}
/**
* Including The DBI Plugin
*/
switch($GLOBALS['cfg']['Server']['extension']) {
case 'mysql' :
include_once './libraries/dbi/DBIMysql.class.php';
$extension = new PMA_DBI_Mysql();
break;
case 'mysqli' :
include_once './libraries/dbi/DBIMysqli.class.php';
$extension = new PMA_DBI_Mysqli();
break;
case 'drizzle' :
include_once './libraries/dbi/DBIDrizzle.class.php';
$extension = new PMA_DBI_Drizzle();
break;
}
}
$GLOBALS['dbi'] = new PMA_DatabaseInterface($extension);
?>