PMA\libraries\navigation\nodes\Node::_getWhereClause PHP Method

_getWhereClause() private method

Returns the WHERE clause depending on the $searchClause parameter and the hide_db directive
private _getWhereClause ( string $columnName, string $searchClause = '' ) : string
$columnName string Column name of the column having database names
$searchClause string A string used to filter the results of the query
return string
    private function _getWhereClause($columnName, $searchClause = '')
    {
        $whereClause = "WHERE TRUE ";
        if (!empty($searchClause)) {
            $whereClause .= "AND " . Util::backquote($columnName) . " LIKE '%";
            $whereClause .= $GLOBALS['dbi']->escapeString($searchClause, true);
            $whereClause .= "%' ";
        }
        if (!empty($GLOBALS['cfg']['Server']['hide_db'])) {
            $whereClause .= "AND " . Util::backquote($columnName) . " NOT REGEXP '" . $GLOBALS['dbi']->escapeString($GLOBALS['cfg']['Server']['hide_db']) . "' ";
        }
        if (!empty($GLOBALS['cfg']['Server']['only_db'])) {
            if (is_string($GLOBALS['cfg']['Server']['only_db'])) {
                $GLOBALS['cfg']['Server']['only_db'] = array($GLOBALS['cfg']['Server']['only_db']);
            }
            $whereClause .= "AND (";
            $subClauses = array();
            foreach ($GLOBALS['cfg']['Server']['only_db'] as $each_only_db) {
                $subClauses[] = " " . Util::backquote($columnName) . " LIKE '" . $GLOBALS['dbi']->escapeString($each_only_db) . "' ";
            }
            $whereClause .= implode("OR", $subClauses) . ") ";
        }
        return $whereClause;
    }