/** * get the list of columns in given database excluding * the columns present in current table * * @param string $db selected database * @param string $table current table name * * @return string encoded list of columns present in central list for the given * database */ function PMA_getCentralColumnsListRaw($db, $table) { $cfgCentralColumns = PMA_centralColumnsGetParams(); if (empty($cfgCentralColumns)) { return json_encode(array()); } $centralTable = $cfgCentralColumns['table']; if (empty($table) || $table == '') { $query = 'SELECT * FROM ' . Util::backquote($centralTable) . ' ' . 'WHERE db_name = \'' . $db . '\';'; } else { $GLOBALS['dbi']->selectDb($db, $GLOBALS['userlink']); $columns = (array) $GLOBALS['dbi']->getColumnNames($db, $table, $GLOBALS['userlink']); $cols = ''; foreach ($columns as $col_select) { $cols .= '\'' . Util::sqlAddSlashes($col_select) . '\','; } $cols = trim($cols, ','); $query = 'SELECT * FROM ' . Util::backquote($centralTable) . ' ' . 'WHERE db_name = \'' . $db . '\''; if ($cols) { $query .= ' AND col_name NOT IN (' . $cols . ')'; } $query .= ';'; } $GLOBALS['dbi']->selectDb($cfgCentralColumns['db'], $GLOBALS['controllink']); $columns_list = (array) $GLOBALS['dbi']->fetchResult($query, null, null, $GLOBALS['controllink']); PMA_handleColumnExtra($columns_list); return json_encode($columns_list); }
/** * Test for PMA_centralColumnsGetParams * * @return void */ public function testPMACentralColumnsGetParams() { $this->assertSame(array('user' => 'pma_user', 'db' => 'phpmyadmin', 'table' => 'pma_central_columns'), PMA_centralColumnsGetParams()); }
echo PMA_getCentralColumnsListRaw($db, $_POST['cur_table']); exit; } if (isset($_POST['add_column'])) { $selected_col = array(); $selected_tbl = $_POST['table-select']; $selected_col[] = $_POST['column-select']; $tmp_msg = PMA_syncUniqueColumns($selected_col, false, $selected_tbl); } $response = PMA_Response::getInstance(); $header = $response->getHeader(); $scripts = $header->getScripts(); $scripts->addFile('jquery/jquery.uitablefilter.js'); $scripts->addFile('jquery/jquery.tablesorter.js'); $scripts->addFile('db_central_columns.js'); $cfgCentralColumns = PMA_centralColumnsGetParams(); $pmadb = $cfgCentralColumns['db']; $pmatable = $cfgCentralColumns['table']; $max_rows = $GLOBALS['cfg']['MaxRows']; if (isset($_REQUEST['edit_central_columns_page'])) { $selected_fld = $_REQUEST['selected_fld']; $selected_db = $_REQUEST['db']; $edit_central_column_page = PMA_getHTMLforEditingPage($selected_fld, $selected_db); $response->addHTML($edit_central_column_page); exit; } if (isset($_POST['multi_edit_central_column_save'])) { $message = PMA_updateMultipleColumn(); if (!is_bool($message)) { $response->isSuccess(false); $response->addJSON('message', $message);