PMA\libraries\Util::isForeignKeySupported PHP Method

isForeignKeySupported() public static method

Verifies if this table's engine supports foreign keys
public static isForeignKeySupported ( string $engine ) : boolean
$engine string engine
return boolean
    public static function isForeignKeySupported($engine)
    {
        $engine = strtoupper($engine);
        if ($engine == 'INNODB' || $engine == 'PBXT') {
            return true;
        } elseif ($engine == 'NDBCLUSTER' || $engine == 'NDB') {
            $ndbver = strtolower($GLOBALS['dbi']->fetchValue("SELECT @@ndb_version_string"));
            if (substr($ndbver, 0, 4) == 'ndb-') {
                $ndbver = substr($ndbver, 4);
            }
            return version_compare($ndbver, 7.3, '>=');
        } else {
            return false;
        }
    }

Usage Example

Example #1
0
use PMA\libraries\Table;
use PMA\libraries\Util;
require_once 'libraries/common.inc.php';
$container = libraries\di\Container::getDefaultContainer();
$container->factory('PMA\\libraries\\controllers\\table\\TableRelationController');
$container->alias('TableRelationController', 'PMA\\libraries\\controllers\\table\\TableRelationController');
$container->set('PMA\\libraries\\Response', Response::getInstance());
$container->alias('response', 'PMA\\libraries\\Response');
/* Define dependencies for the concerned controller */
$db = $container->get('db');
$table = $container->get('table');
$dbi = $container->get('dbi');
$options_array = array('CASCADE' => 'CASCADE', 'SET_NULL' => 'SET NULL', 'NO_ACTION' => 'NO ACTION', 'RESTRICT' => 'RESTRICT');
$cfgRelation = PMA_getRelationsParam();
$tbl_storage_engine = mb_strtoupper($dbi->getTable($db, $table)->getStatusInfo('Engine'));
$upd_query = new Table($table, $db, $dbi);
$dependency_definitions = array("options_array" => $options_array, "cfgRelation" => $cfgRelation, "tbl_storage_engine" => $tbl_storage_engine, "upd_query" => $upd_query);
if ($cfgRelation['relwork']) {
    $dependency_definitions['existrel'] = PMA_getForeigners($db, $table, '', 'internal');
}
if (Util::isForeignKeySupported($tbl_storage_engine)) {
    $dependency_definitions['existrel_foreign'] = PMA_getForeigners($db, $table, '', 'foreign');
}
if ($cfgRelation['displaywork']) {
    $dependency_definitions['disp'] = PMA_getDisplayField($db, $table);
} else {
    $dependency_definitions['disp'] = 'asas';
}
/** @var TableRelationController $controller */
$controller = $container->get('TableRelationController', $dependency_definitions);
$controller->indexAction();
All Usage Examples Of PMA\libraries\Util::isForeignKeySupported
Util