function check_db() { $db = $_POST['db']; $db['host'] = trim($db['host']); $db['user'] = trim($db['user']); $db['base'] = trim($db['base']); $db['engine'] = trim($db['engine']); $mysqli = @new mysqli($db['host'], $db['user'], $db['pass'], $db['base']); if ($mysqli->connect_error) { return array('error' => true, 'message' => sprintf(LANG_DATABASE_CONNECT_ERROR, $mysqli->connect_error)); } $mysqli->set_charset("utf8"); $check_engine = check_db_engine($mysqli, $db['engine']); if ($check_engine !== true) { return array('error' => true, 'message' => $check_engine); } $success = import_dump($mysqli, 'base.sql', $db['prefix'], $db['engine']); if ($success) { if (!$db['users_exists']) { $db['users_table'] = $db['prefix'] . 'users'; } $_SESSION['install']['db'] = $db; } return array('error' => !$success, 'message' => LANG_DATABASE_BASE_ERROR); }
function check_db() { $db = $_POST['db']; $db['host'] = trim($db['host']); $db['user'] = trim($db['user']); $db['base'] = trim($db['base']); $db['engine'] = trim($db['engine']); $db['clear_sql_mode'] = 0; $mysqli = @new mysqli($db['host'], $db['user'], $db['pass'], $db['base']); if ($mysqli->connect_error) { return array('error' => true, 'message' => sprintf(LANG_DATABASE_CONNECT_ERROR, $mysqli->connect_error)); } if (!empty($mysqli->server_info)) { if (strpos($mysqli->server_info, '5.7') === 0) { $db['clear_sql_mode'] = 1; } } $mysqli->set_charset("utf8"); $check_engine = check_db_engine($mysqli, $db['engine']); if ($check_engine !== true) { return array('error' => true, 'message' => $check_engine); } $success = import_dump($mysqli, 'base.sql', $db['prefix'], $db['engine']); if ($success) { $success = import_dump($mysqli, 'geo.sql', $db['prefix'], $db['engine']); } if ($success && !empty($db['is_install_demo_content'])) { $success = import_dump($mysqli, 'base_demo_content.sql', $db['prefix'], $db['engine']); $dir_install_upload = PATH . DS . 'upload'; $dir_upload = DOC_ROOT . DS . 'upload'; copy_folder($dir_install_upload, $dir_upload); } if ($success) { if (!$db['users_exists']) { $db['users_table'] = $db['prefix'] . 'users'; } $_SESSION['install']['db'] = $db; } return array('error' => !$success, 'message' => LANG_DATABASE_BASE_ERROR); }
<?php include 'installUtil.php'; $dbhost = test_input($_POST['dbhost']); $dbport = test_input($_POST['dbport']); $dbname = test_input($_POST['dbname']); $dbusername = test_input($_POST['dbusername']); $dbpassword = test_input($_POST['dbpassword']); $adminpassword = test_input($_POST['adminpassword']); if ($dbport == null) { $dbport = "3306"; } if ($dbhost == null || $dbname == null || $dbusername == null || $adminpassword == null) { header("Location: configure.php?error=param"); exit; } if (file_exists(__DIR__ . '/../../app/config/parameters.yml')) { header("Location: configure.php?error=already"); exit; } //Testing mysql connection $link = mysqli_connect($dbhost, $dbusername, $dbpassword, null, $dbport); if (!$link) { header("Location: configure.php?error=bdd"); exit; } create_database($link, $dbname); import_dump($link, $dbname); mysqli_close($link); //Generating parameter.yml file generateParameters($dbhost, $dbport, $dbname, $dbusername, $dbpassword, $adminpassword);
$wgDBdevboxPass = '******'; $wgDBdevboxServer1 = 'dev-db-a1'; $wgDBdevboxServer2 = 'dev-db-b1'; $wgControlPageID = 6741; $wgDatabaseDirectories = array("database_A", "database_B", "database_C"); $USAGE = "Usage:\tphp syncDevData.php\n"; $wikis = what_to_sync(); find_dumps(&$wikis); foreach ($wikis as $name => $detail) { echo "\n== Importing new content for {$name} ==\n"; // See if the dump is newer and if not skip it if (!needs_update($name, $detail)) { continue; } $file = save_dump($name, $detail); import_dump($name, $detail, $file); } /******************************************************************************/ function what_to_sync() { global $wgDBdevboxServer2, $wgDBdevboxUser, $wgDBdevboxPass, $wgControlPageID; // DBs to sync are reprented as links from page $wgControlPageID. The // pages don't have exist and just have to be named Sync:DBNAME $response = `mysql -h{$wgDBdevboxServer2} -u{$wgDBdevboxUser} -p{$wgDBdevboxPass} devbox -s -N -e "select pl_title from pagelinks where pl_from = {$wgControlPageID}"`; // Skip any links that don't start with Sync: and strip the Sync: off the // links that do match $dbnames = array(); foreach (explode("\n", $response) as $name) { if (preg_match('/^Sync:(.+)$/', $name, $matches)) { $dbnames[$matches[1]] = array(); }