function fs_ajax_attach_to_database(&$response) { $host = $_POST['host']; $user = $_POST['user']; $pass = $_POST['pass']; $dbname = $_POST['dbname']; $table_prefix = $_POST['table_prefix']; $res = fs_save_config_file($host, $user, $pass, $dbname, $table_prefix); if ($res != '') { ajax_error($response, fs_r('Error creating config file: ') . $res); return false; } else { $response['db_status'] = 'ok'; fs_sendDBConfig($response); if (fs_should_show_use_wp_button()) { $response['styles']['switch_to_external_system']['display'] = 'block'; } return true; } }
function fs_create_new_database($host, $admin_user, $admin_pass, $user, $pass, $dbname, $table_prefix) { if (!fs_is_admin()) { return fs_get_db_response("access_denied", "Access denied : fs_create_new_database"); } require_once dirname(__FILE__) . "/ezsql/mysql/ez_sql_mysql.php"; require_once dirname(__FILE__) . "/ezsql/shared/ez_sql_core.php"; require_once dirname(__FILE__) . "/db-setup.php"; if ($user == '' || $pass == '') { $user = $admin_user; $pass = $admin_pass; } $conn = new fs_ezSQL_mysql($admin_user, $admin_pass, $dbname, $host); $conn->hide_errors(); if (!fs_config_writeable()) { return fs_get_db_response('read_only_config'); } if (!$conn->connect($admin_user, $admin_pass, $host, false)) { return fs_get_db_response('db_connect_error', $conn->last_error); } $db = $conn->query("SHOW DATABASES LIKE '{$dbname}'"); if ($db === false) { return fs_get_db_response('db_access_error', $conn->last_error); } $existed = $db == 1; if ($conn->query("CREATE DATABASE IF NOT EXISTS `{$dbname}`") === false) { return fs_get_db_response('db_create_error', $conn->last_error); } if ($conn->query("GRANT SELECT, INSERT, UPDATE, \n\t\t\t\t\t\t\tDELETE, CREATE, ALTER, INDEX, \n\t\t\t\t\t\t\tDROP, CREATE TEMPORARY TABLES \n\t\t\t\t\t\t\tON `{$dbname}`.*\n\t\t\t\t\t\t\tTO `{$user}` IDENTIFIED BY '{$pass}';") === false) { $last_error = $conn->last_error; if (!$existed) { $conn->query("DROP DATABASE `{$dbname}`"); } return fs_get_db_response('user_create_error', $last_error); } ob_start(); $install_res = fs_install_into($user, $pass, $dbname, $host); $output = ob_get_clean(); if (!$install_res) { $last_error = $conn->last_error; if (!$existed) { $conn->query("DROP DATABASE `{$dbname}`"); } return fs_get_db_response('tables_create_error', $last_error . ($output ? ', Output: ' . $output : '')); } $r = fs_save_config_file($host, $user, $pass, $dbname, $table_prefix); if ($r != '') { if (!$existed) { $conn->query("DROP DATABASE `{$dbname}`"); } return fs_get_db_response('config_save_error', $conn->last_error); } $conn->disconnect(); return fs_get_db_response('db_created', $conn->last_error); }