$tab_query = 'SHOW TABLES FROM ' . PMA_backquote($db);
        // [0] of the row is the name
    }
    $tab_rs = PMA_DBI_query($tab_query, null, PMA_DBI_QUERY_STORE);
    $selectboxall[] = '';
    $selectboxall_foreign[] = '';
    while ($curr_table = PMA_DBI_fetch_row($tab_rs)) {
        $current_table = new PMA_Table($curr_table[0], $db);
        // explicitely ask for non-quoted list of indexed columns
        $selectboxall = array_merge($selectboxall, $current_table->getUniqueColumns($backquoted = false));
        // if foreign keys are supported, collect all keys from other
        // tables of the same engine
        if (PMA_foreignkey_supported($tbl_type) && isset($curr_table[1]) && strtoupper($curr_table[1]) == $tbl_type) {
            // explicitely ask for non-quoted list of indexed columns
            // need to obtain backquoted values to support dots inside values
            $selectboxall_foreign = array_merge($selectboxall_foreign, $current_table->getIndexedColumns($backquoted = true));
        }
    }
    // end while over tables
}
// end if
// Now find out the columns of our $table
// need to use PMA_DBI_QUERY_STORE with PMA_DBI_num_rows() in mysqli
$col_rs = PMA_DBI_try_query('SHOW COLUMNS FROM ' . PMA_backquote($table) . ';', null, PMA_DBI_QUERY_STORE);
if ($col_rs && PMA_DBI_num_rows($col_rs) > 0) {
    while ($row = PMA_DBI_fetch_assoc($col_rs)) {
        $save_row[] = $row;
    }
    $saved_row_cnt = count($save_row);
    ?>
    <fieldset>
Exemplo n.º 2
0
 /**
  * Test for getIndexedColumns
  *
  * @return void
  */
 public function testGetIndexedColumns()
 {
     $table = 'PMA_BookMark';
     $db = 'PMA';
     $table = new PMA_Table($table, $db);
     $return = $table->getIndexedColumns();
     $expect = array('`PMA`.`PMA_BookMark`.`column1`', '`PMA`.`PMA_BookMark`.`column3`', '`PMA`.`PMA_BookMark`.`column5`', '`PMA`.`PMA_BookMark`.`ACCESSIBLE`', '`PMA`.`PMA_BookMark`.`ADD`', '`PMA`.`PMA_BookMark`.`ALL`');
     $this->assertEquals($expect, $return);
 }
Exemplo n.º 3
0
/**
 * Function to send html for column dropdown list
 *
 * @return void
 */
function PMA_sendHtmlForColumnDropdownList()
{
    $response = PMA_Response::getInstance();
    $foreignTable = $_REQUEST['foreignTable'];
    $table_obj = new PMA_Table($foreignTable, $_REQUEST['foreignDb']);
    // Since views do not have keys defined on them provide the full list of columns
    if (PMA_Table::isView($_REQUEST['foreignDb'], $foreignTable)) {
        $columnList = $table_obj->getColumns(false, false);
    } else {
        $columnList = $table_obj->getIndexedColumns(false, false);
    }
    $columns = array();
    foreach ($columnList as $column) {
        $columns[] = htmlspecialchars($column);
    }
    $response->addJSON('columns', $columns);
    // @todo should be: $server->db($db)->table($table)->primary()
    $primary = PMA_Index::getPrimary($foreignTable, $_REQUEST['foreignDb']);
    if (false === $primary) {
        return;
    }
    $primarycols = array_keys($primary->getColumns());
    $response->addJSON('primary', $primarycols);
}
Exemplo n.º 4
0
    } else {
        $tab_query = 'SHOW TABLES FROM ' . PMA_backquote($db);
        // [0] of the row is the name
    }
    $tab_rs = PMA_DBI_query($tab_query, null, PMA_DBI_QUERY_STORE);
    $selectboxall[] = '';
    $selectboxall_foreign[] = '';
    while ($curr_table = PMA_DBI_fetch_row($tab_rs)) {
        $current_table = new PMA_Table($curr_table[0], $db);
        // explicitely ask for non-quoted list of indexed columns
        $selectboxall = array_merge($selectboxall, $current_table->getUniqueColumns(false));
        // if foreign keys are supported, collect all keys from other
        // tables of the same engine
        if (PMA_foreignkey_supported($tbl_type) && isset($curr_table[1]) && strtoupper($curr_table[1]) == $tbl_type) {
            // explicitely ask for non-quoted list of indexed columns
            $selectboxall_foreign = array_merge($selectboxall_foreign, $current_table->getIndexedColumns(false));
        }
    }
    // end while over tables
}
// end if
// Now find out the columns of our $table
// need to use PMA_DBI_QUERY_STORE with PMA_DBI_num_rows() in mysqli
$col_rs = PMA_DBI_try_query('SHOW COLUMNS FROM ' . PMA_backquote($table) . ';', null, PMA_DBI_QUERY_STORE);
if ($col_rs && PMA_DBI_num_rows($col_rs) > 0) {
    while ($row = PMA_DBI_fetch_assoc($col_rs)) {
        $save_row[] = $row;
    }
    $saved_row_cnt = count($save_row);
    ?>
    <fieldset>
Exemplo n.º 5
0
/**
 * Function to send html for column dropdown list
 *
 * @return void
 */
function PMA_sendHtmlForColumnDropdownList()
{
    $response = PMA_Response::getInstance();
    $foreignTable = $_REQUEST['foreignTable'];
    $table_obj = new PMA_Table($foreignTable, $_REQUEST['foreignDb']);
    $columns = array();
    foreach ($table_obj->getIndexedColumns(false, false) as $column) {
        $columns[] = htmlspecialchars($column);
    }
    $response->addJSON('columns', $columns);
}
Exemplo n.º 6
0
require_once 'libraries/Template.class.php';
require_once 'libraries/Table.class.php';
require_once 'libraries/structure.lib.php';
$response = PMA_Response::getInstance();
// Send table of column names to populate corresponding dropdowns depending
// on the current selection
if (isset($_REQUEST['getDropdownValues']) && $_REQUEST['getDropdownValues'] === 'true') {
    if (isset($_REQUEST['foreignTable'])) {
        // if both db and table are selected
        $foreignTable = $_REQUEST['foreignTable'];
        $table_obj = new PMA_Table($foreignTable, $_REQUEST['foreignDb']);
        // Since views do not have keys defined on them provide the full list of columns
        if (PMA_Table::isView($_REQUEST['foreignDb'], $foreignTable)) {
            $columnList = $table_obj->getColumns(false, false);
        } else {
            $columnList = $table_obj->getIndexedColumns(false, false);
        }
        $columns = array();
        foreach ($columnList as $column) {
            $columns[] = htmlspecialchars($column);
        }
        $response->addJSON('columns', $columns);
        // @todo should be: $server->db($db)->table($table)->primary()
        $primary = PMA_Index::getPrimary($foreignTable, $_REQUEST['foreignDb']);
        if (false === $primary) {
            return;
        }
        $primarycols = array_keys($primary->getColumns());
        $response->addJSON('primary', $primarycols);
    } else {
        // if only the db is selected
Exemplo n.º 7
0
        $selectboxall = array_merge(
            $selectboxall,
            $current_table->getUniqueColumns($backquoted = false)
        );

        // if foreign keys are supported, collect all keys from other
        // tables of the same engine
        if (PMA_Util::isForeignKeySupported($tbl_storage_engine)
            && isset($curr_table[1])
            && strtoupper($curr_table[1]) == $tbl_storage_engine
        ) {
             // explicitely ask for non-quoted list of indexed columns
             // need to obtain backquoted values to support dots inside values
             $selectboxall_foreign = array_merge(
                 $selectboxall_foreign,
                 $current_table->getIndexedColumns($backquoted = true)
             );
        }
    } // end while over tables
} // end if

// Now find out the columns of our $table
// need to use PMA_DBI_QUERY_STORE with PMA_DBI_num_rows() in mysqli
$columns = PMA_DBI_get_columns($db, $table);

if (count($columns) > 0) {
    foreach ($columns as $row) {
        $save_row[] = $row;
    }
    $saved_row_cnt  = count($save_row);
    ?>