/** * Function to get html for schema snapshot * * @param string $url_query url query * * @return string */ function PMA_getHtmlForSchemaSnapshot($url_query) { $html = '<h3>' . __('Structure snapshot') . ' [<a href="tbl_tracking.php' . $url_query . '">' . __('Close') . '</a>]</h3>'; $data = Tracker::getTrackedData($_REQUEST['db'], $_REQUEST['table'], $_REQUEST['version']); // Get first DROP TABLE/VIEW and CREATE TABLE/VIEW statements $drop_create_statements = $data['ddlog'][0]['statement']; if (mb_strstr($data['ddlog'][0]['statement'], 'DROP TABLE') || mb_strstr($data['ddlog'][0]['statement'], 'DROP VIEW')) { $drop_create_statements .= $data['ddlog'][1]['statement']; } // Print SQL code $html .= PMA\libraries\Util::getMessage(sprintf(__('Version %s snapshot (SQL code)'), htmlspecialchars($_REQUEST['version'])), $drop_create_statements); // Unserialize snapshot $temp = PMA_safeUnserialize($data['schema_snapshot']); if ($temp === null) { $temp = array('COLUMNS' => array(), 'INDEXES' => array()); } $columns = $temp['COLUMNS']; $indexes = $temp['INDEXES']; $html .= PMA_getHtmlForColumns($columns); if (count($indexes) > 0) { $html .= PMA_getHtmlForIndexes($indexes); } // endif $html .= '<br /><hr /><br />'; return $html; }
/** * Test for unserializing * * @param string $data Serialized data * @param mixed $expected Expected result * * @return void * * @dataProvider provideMySQLHosts */ function testSanitizeMySQLHost($data, $expected) { $this->assertEquals($expected, PMA_safeUnserialize($data)); }