/** * Tests replace() method * * @return void */ public function testReplace() { //mock DBI $dbi = $this->getMockBuilder('PMA_DatabaseInterface')->disableOriginalConstructor()->getMock(); $find = 'findValue'; $replaceWith = 'replaceWithValue'; $charSet = 'charSetValue'; $expectedQuery = "UPDATE `dbName`.`tableName`" . " SET `column1` = REPLACE(`column1`, '" . $find . "', '" . $replaceWith . "') WHERE `column1` LIKE '%" . $find . "%' COLLATE " . $charSet . "_bin"; // set expectations $dbi->expects($this->once())->method('query')->with($expectedQuery); $GLOBALS['dbi'] = $dbi; $this->_object->replace(0, $find, $replaceWith, $charSet); }
require_once './libraries/tbl_info.inc.php'; $response = PMA_Response::getInstance(); $header = $response->getHeader(); $scripts = $header->getScripts(); $scripts->addFile('makegrid.js'); $scripts->addFile('sql.js'); $scripts->addFile('jqplot/jquery.jqplot.js'); $scripts->addFile('jqplot/plugins/jqplot.canvasTextRenderer.js'); $scripts->addFile('jqplot/plugins/jqplot.canvasAxisLabelRenderer.js'); $scripts->addFile('jqplot/plugins/jqplot.dateAxisRenderer.js'); $scripts->addFile('jqplot/plugins/jqplot.highlighter.js'); $scripts->addFile('jqplot/plugins/jqplot.cursor.js'); $scripts->addFile('canvg/canvg.js'); $scripts->addFile('jquery/jquery-ui-timepicker-addon.js'); $scripts->addFile('tbl_zoom_plot_jqplot.js'); $table_search = new PMA_TableSearch($db, $table, "zoom"); /** * Handle AJAX request for data row on point select * @var post_params Object containing parameters for the POST request */ if (isset($_REQUEST['get_data_row']) && $_REQUEST['get_data_row'] == true) { $extra_data = array(); $row_info_query = 'SELECT * FROM `' . $_REQUEST['db'] . '`.`' . $_REQUEST['table'] . '` WHERE ' . $_REQUEST['where_clause']; $result = $GLOBALS['dbi']->query($row_info_query . ";", null, PMA_DatabaseInterface::QUERY_STORE); $fields_meta = $GLOBALS['dbi']->getFieldsMeta($result); while ($row = $GLOBALS['dbi']->fetchAssoc($result)) { // for bit fields we need to convert them to printable form $i = 0; foreach ($row as $col => $val) { if ($fields_meta[$i]->type == 'bit') { $row[$col] = PMA_Util::printableBitValue($val, $fields_meta[$i]->length);
require_once 'libraries/common.inc.php'; require_once 'libraries/mysql_charsets.inc.php'; require_once 'libraries/TableSearch.class.php'; require_once 'libraries/sql.lib.php'; require_once 'libraries/bookmark.lib.php'; $response = PMA_Response::getInstance(); $header = $response->getHeader(); $scripts = $header->getScripts(); $scripts->addFile('makegrid.js'); $scripts->addFile('sql.js'); $scripts->addFile('tbl_select.js'); $scripts->addFile('tbl_change.js'); $scripts->addFile('jquery/jquery-ui-timepicker-addon.js'); $scripts->addFile('jquery/jquery.uitablefilter.js'); $scripts->addFile('gis_data_editor.js'); $table_search = new PMA_TableSearch($db, $table, "normal"); // Request to column min-max value. if (isset($_REQUEST['range_search'])) { $response = PMA_Response::getInstance(); $min_max = $table_search->getColumnMinMax($_REQUEST['column']); $response->addJSON('column_data', $min_max); exit; } /** * No selection criteria received -> display the selection form */ if (!isset($_POST['columnsToDisplay']) && !isset($_POST['displayAllColumns'])) { // Gets some core libraries include_once 'libraries/tbl_common.inc.php'; //$err_url = 'tbl_select.php' . $err_url; $url_query .= '&goto=tbl_select.php&back=tbl_select.php';
<?php /* vim: set expandtab sw=4 ts=4 sts=4: */ /** * Handles find and replace tab * * Displays find and replace form, allows previewing and do the replacing * * @package PhpMyAdmin */ /** * Gets some core libraries */ require_once 'libraries/common.inc.php'; require_once 'libraries/TableSearch.class.php'; $response = PMA_Response::getInstance(); $table_search = new PMA_TableSearch($db, $table, "replace"); $connectionCharSet = $GLOBALS['dbi']->fetchValue("SHOW VARIABLES LIKE 'character_set_connection'", 0, 1); if (isset($_POST['find'])) { $preview = $table_search->getReplacePreview($_POST['columnIndex'], $_POST['find'], $_POST['replaceWith'], $connectionCharSet); $response->addJSON('preview', $preview); exit; } $header = $response->getHeader(); $scripts = $header->getScripts(); $scripts->addFile('tbl_find_replace.js'); // Show secondary level of tabs $htmlOutput = $table_search->getSecondaryTabs(); if (isset($_POST['replace'])) { $htmlOutput .= $table_search->replace($_POST['columnIndex'], $_POST['findString'], $_POST['replaceWith'], $connectionCharSet); $htmlOutput .= PMA_Util::getMessage(__('Your SQL query has been executed successfully.'), null, 'success'); }
*/ require_once 'libraries/common.inc.php'; require_once 'libraries/mysql_charsets.inc.php'; require_once 'libraries/TableSearch.class.php'; require_once 'libraries/sql.lib.php'; $response = PMA_Response::getInstance(); $header = $response->getHeader(); $scripts = $header->getScripts(); $scripts->addFile('makegrid.js'); $scripts->addFile('sql.js'); $scripts->addFile('tbl_select.js'); $scripts->addFile('tbl_change.js'); $scripts->addFile('jquery/jquery-ui-timepicker-addon.js'); $scripts->addFile('jquery/jquery.uitablefilter.js'); $scripts->addFile('gis_data_editor.js'); $table_search = new PMA_TableSearch($db, $table, "normal"); /** * No selection criteria received -> display the selection form */ if (!isset($_POST['columnsToDisplay']) && !isset($_POST['displayAllColumns'])) { // Gets some core libraries include_once 'libraries/tbl_common.inc.php'; //$err_url = 'tbl_select.php' . $err_url; $url_query .= '&goto=tbl_select.php&back=tbl_select.php'; /** * Gets table's information */ include_once 'libraries/tbl_info.inc.php'; if (!isset($goto)) { $goto = $GLOBALS['cfg']['DefaultTabTable']; }
/** * Test for buildSqlQuery * * @return void */ public function testBuildSqlQueryw() { $_POST['distinct'] = true; $_POST['zoom_submit'] = true; $_POST['table'] = "PMA"; $_POST['orderByColumn'] = "name"; $_POST['order'] = "asc"; $_POST['customWhereClause'] = "name='pma'"; $tableSearch = new PMA_TableSearch("PMA", "PMA_BookMark", "zoom"); $sql = $tableSearch->buildSqlQuery(); $result = "SELECT DISTINCT * FROM `PMA` WHERE name='pma' " . "ORDER BY `name` asc"; $this->assertEquals($result, $sql); unset($_POST['customWhereClause']); $sql = $tableSearch->buildSqlQuery(); $result = "SELECT DISTINCT * FROM `PMA` ORDER BY `name` asc"; $this->assertEquals($result, $sql); $_POST['criteriaValues'] = array('value1', 'value2', 'value3', 'value4', 'value5', 'value6', 'value7,value8'); $_POST['criteriaColumnNames'] = array('name', 'id', 'index', 'index2', 'index3', 'index4', 'index5'); $_POST['criteriaColumnTypes'] = array('varchar', 'int', 'enum', 'type1', 'type2', 'type3', 'type4'); $_POST['criteriaColumnCollations'] = array("char1", "char2", "char3", "char4", "char5", "char6", "char7"); $_POST['criteriaColumnOperators'] = array("!=", ">", "IS NULL", "LIKE %...%", "REGEXP ^...\$", "IN (...)", "BETWEEN"); $sql = $tableSearch->buildSqlQuery(); $result = "SELECT DISTINCT * FROM `PMA` WHERE `name` != 'value1'" . " AND `id` > value2 AND `index` IS NULL AND `index2` LIKE '%value4%'" . " AND `index3` REGEXP ^value5\$ AND `index4` IN (value6) AND `index5`" . " BETWEEN value7 AND value8 ORDER BY `name` asc"; $this->assertEquals($result, $sql); }