Пример #1
0
/**
 * Displays SQL query before executing.
 *
 * @param array|string $query_data Array containing queries or query itself
 *
 * @return void
 */
function PMA_previewSQL($query_data)
{
    $retval = '<div class="preview_sql">';
    if (empty($query_data)) {
        $retval .= __('No change');
    } elseif (is_array($query_data)) {
        foreach ($query_data as $query) {
            $retval .= PMA\libraries\Util::formatSql($query);
        }
    } else {
        $retval .= PMA\libraries\Util::formatSql($query_data);
    }
    $retval .= '</div>';
    $response = Response::getInstance();
    $response->addJSON('sql_data', $retval);
    exit;
}
Пример #2
0
/**
 * Function to get html for one data manipulation statement
 *
 * @param array  $entry              entry
 * @param array  $filter_users       filter users
 * @param int    $filter_ts_from     filter time stamp from
 * @param int    $filter_ts_to       filter time stamp to
 * @param string $style              style
 * @param int    $line_number        line number
 * @param array  $url_params         url parameters
 * @param int    $offset             line number offset
 * @param string $drop_image_or_text drop image or text
 * @param string $delete_param       parameter for delete
 *
 * @return string
 */
function PMA_getHtmlForOneStatement($entry, $filter_users, $filter_ts_from, $filter_ts_to, $style, $line_number, $url_params, $offset, $drop_image_or_text, $delete_param)
{
    $statement = PMA\libraries\Util::formatSql($entry['statement'], true);
    $timestamp = strtotime($entry['date']);
    $filtered_user = in_array($entry['username'], $filter_users);
    $html = null;
    if ($timestamp >= $filter_ts_from && $timestamp <= $filter_ts_to && (in_array('*', $filter_users) || $filtered_user)) {
        $html = '<tr class="noclick ' . $style . '">';
        $html .= '<td class="right"><small>' . $line_number . '</small></td>';
        $html .= '<td><small>' . htmlspecialchars($entry['date']) . '</small></td>';
        $html .= '<td><small>' . htmlspecialchars($entry['username']) . '</small></td>';
        $html .= '<td>' . $statement . '</td>';
        $html .= '<td class="nowrap"><a  class="delete_entry_anchor ajax"' . ' href="tbl_tracking.php' . URL::getCommon($url_params + array('report' => 'true', 'version' => $_REQUEST['version'], $delete_param => $line_number - $offset)) . '">' . $drop_image_or_text . '</a></td>';
        $html .= '</tr>';
    }
    return $html;
}
 /**
  * Test for formatSql
  *
  * @return void
  */
 function testFormatSQLTruncate()
 {
     $GLOBALS['cfg']['MaxCharactersInDisplayedSQL'] = 6;
     $this->assertEquals('<code class="sql"><pre>' . "\n" . 'SELECT[...]' . "\n" . '</pre></code>', PMA\libraries\Util::formatSql('SELECT 1 < 2', true));
 }
Пример #4
0
 /**
  * Tests simulated UPDATE/DELETE query.
  *
  * @param string $sql_query       SQL query
  * @param string $simulated_query Simulated query
  *
  * @return void
  */
 function simulatedQueryTest($sql_query, $simulated_query)
 {
     $parser = new SqlParser\Parser($sql_query);
     $analyzed_sql_results = array('query' => $sql_query, 'parser' => $parser, 'statement' => $parser->statements[0]);
     $simulated_data = PMA_getMatchedRows($analyzed_sql_results);
     // URL to matched rows.
     $_url_params = array('db' => 'PMA', 'sql_query' => $simulated_query);
     $matched_rows_url = 'sql.php' . URL::getCommon($_url_params);
     $this->assertEquals(array('sql_query' => PMA\libraries\Util::formatSql($analyzed_sql_results['query']), 'matched_rows' => 2, 'matched_rows_url' => $matched_rows_url), $simulated_data);
 }