$GLOBALS['dbi']->selectDb($db); $result = $GLOBALS['dbi']->query('SHOW KEYS FROM ' . PMA\libraries\Util::backquote($table) . ';'); $primary = ''; while ($row = $GLOBALS['dbi']->fetchAssoc($result)) { // Backups the list of primary keys if ($row['Key_name'] == 'PRIMARY') { $primary .= $row['Column_name'] . ', '; } } // end while $GLOBALS['dbi']->freeResult($result); } if ($query_type == 'drop_tbl' || $query_type == 'empty_tbl' || $query_type == 'row_delete') { $default_fk_check_value = PMA\libraries\Util::handleDisableFKCheckInit(); } list($result, $rebuild_database_list, $reload_ret, $run_parts, $execute_query_later, $sql_query, $sql_query_views) = PMA_buildOrExecuteQueryForMulti($query_type, $selected, $db, $table, $views, isset($primary) ? $primary : null, isset($from_prefix) ? $from_prefix : null, isset($to_prefix) ? $to_prefix : null); //update the existed variable if (isset($reload_ret)) { $reload = $reload_ret; } if ($query_type == 'drop_tbl') { if (!empty($sql_query)) { $sql_query .= ';'; } elseif (!empty($sql_query_views)) { $sql_query = $sql_query_views . ';'; unset($sql_query_views); } } if ($execute_query_later) { /** * Parse and analyze the query
/** * Test for PMA_buildOrExecuteQueryForMulti * * @return void */ public function testPMABuildOrExecuteQueryForMulti() { $query_type = 'row_delete'; $db = "PMA_db"; $table = "PMA_table"; $selected = array("table1", "table2"); $views = null; $primary = null; $from_prefix = "from_prefix"; $to_prefix = "to_prefix"; $_REQUEST['pos'] = 1000; $_SESSION['tmpval']['pos'] = 1000; $_SESSION['tmpval']['max_rows'] = 25; list($result, $rebuild_database_list, $reload_ret, $run_parts, $execute_query_later, , ) = PMA_buildOrExecuteQueryForMulti($query_type, $selected, $db, $table, $views, $primary, $from_prefix, $to_prefix); //validate 1: $run_parts $this->assertEquals(true, $run_parts); //validate 2: $result $this->assertEquals(true, $result); //validate 3: $rebuild_database_list $this->assertEquals(false, $rebuild_database_list); //validate 4: $reload_ret $this->assertEquals(null, $reload_ret); $query_type = 'analyze_tbl'; list(, , , , $execute_query_later, , ) = PMA_buildOrExecuteQueryForMulti($query_type, $selected, $db, $table, $views, $primary, $from_prefix, $to_prefix); //validate 5: $execute_query_later $this->assertEquals(true, $execute_query_later); }