Step 1: Export database schemas'; if (count($dbs_config) > 0) { echo '
Select a database configuration from the list below, or select \'Enter details...\'
'; echo 'Enter connection details in the form below, or setup a database connection in the config.php
file.
Once two database schemas have been exported, paste them here to be compared.
'; echo ''; } /** * Convenience method for outputting errors. * * @return void **/ function echo_error($error) { echo '', $error, '
'; } /** * Export the schema from the database specified and echo the results. * * @param string $db The key of the config to be extracted from $dbs_config. * @return void */ function export_schema($config) { $result = DbDiff::export($config['config'], $config['name']); if ($result == null) { echo_error('Couldn\'t connect to database: ' . mysql_error()); return; } $serialized_schema = serialize($result); echo 'Copy the following schema information and then proceed to step 2.
'; echo ''; } /** * Strips new line characters (CR and LF) from a string. * * @param string $str The string to process. * @return string The string without CRs or LFs. */ function strip_nl($str) { return str_replace(array("\n", "\r"), '', $str); } /** * Returns an 's' character if the count is not 1. * * This is useful for adding plurals. * * @return string An 's' character or an empty string **/ function s($count) { return $count != 1 ? 's' : ''; } /** * Compare the two schemas and echo the results. * * @param string $schema1 The first schema (serialized). * @param string $schema2 The second schema (serialized). * @return void */ function do_compare($schema1, $schema2) { if (empty($schema1) || empty($schema2)) { echo_error('Both schemas must be given.'); return; } $unserialized_schema1 = unserialize(strip_nl($schema1)); $unserialized_schema2 = unserialize(strip_nl($schema2)); $results = DbDiff::compare($unserialized_schema1, $unserialized_schema2); if (count($results) > 0) { echo 'No differences found.
'; } } ?>