105 lines
3.2 KiB
PHP
105 lines
3.2 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Http\Controllers\WEB;
|
||
|
|
|
||
|
|
use App\Http\Controllers\Controller;
|
||
|
|
use Illuminate\Http\Request;
|
||
|
|
use PDO;
|
||
|
|
use PDOException;
|
||
|
|
|
||
|
|
class TestDbController extends Controller
|
||
|
|
{
|
||
|
|
protected $myDb;
|
||
|
|
|
||
|
|
public function testDB(Request $request)
|
||
|
|
{
|
||
|
|
$request->session()->put('env.DB_CONNECTION', $request->db_connection);
|
||
|
|
$request->session()->put('env.DB_HOST', $request->db_host);
|
||
|
|
$request->session()->put('env.DB_PORT', $request->db_port);
|
||
|
|
$request->session()->put('env.DB_DATABASE', $request->db_database);
|
||
|
|
$request->session()->put('env.DB_USERNAME', $request->db_username);
|
||
|
|
$request->session()->put('env.DB_PASSWORD', $request->db_password);
|
||
|
|
|
||
|
|
if ($request->db_connection == 'mysql') {
|
||
|
|
return $this->testMySql();
|
||
|
|
}
|
||
|
|
|
||
|
|
return response()->json([
|
||
|
|
'Error' => 'DB Type not Supported for testing',
|
||
|
|
'State' => '999',
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function testMySql()
|
||
|
|
{
|
||
|
|
$db_type = session('env.DB_CONNECTION');
|
||
|
|
$db_host = session('env.DB_HOST');
|
||
|
|
$db_name = session('env.DB_DATABASE');
|
||
|
|
$db_user = session('env.DB_USERNAME');
|
||
|
|
$db_pass = session('env.DB_PASSWORD');
|
||
|
|
$db_port = session('env.DB_PORT');
|
||
|
|
|
||
|
|
if (! $db_name) {
|
||
|
|
return response()->json([
|
||
|
|
'Error' => 'No Database',
|
||
|
|
'State' => '999',
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
if (! $db_user) {
|
||
|
|
return response()->json([
|
||
|
|
'Error' => 'No Username',
|
||
|
|
'State' => '999',
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
if (! $db_port) {
|
||
|
|
return response()->json([
|
||
|
|
'Error' => 'No Port',
|
||
|
|
'State' => '999',
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
if (! $db_host) {
|
||
|
|
return response()->json([
|
||
|
|
'Error' => 'No Host',
|
||
|
|
'State' => '999',
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
try {
|
||
|
|
$db = new PDO($db_type.':host='.$db_host.';port='.$db_port.';dbname='.$db_name, $db_user, $db_pass, [
|
||
|
|
PDO::ATTR_TIMEOUT => '5',
|
||
|
|
PDO::ATTR_EMULATE_PREPARES => false,
|
||
|
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||
|
|
PDO::MYSQL_ATTR_LOCAL_INFILE => true,
|
||
|
|
]);
|
||
|
|
} catch (PDOException $e) {
|
||
|
|
if ($e->getCode() == '1049') {
|
||
|
|
$db = new PDO($db_type.':host='.$db_host.';port='.$db_port.';dbname='.'', $db_user, $db_pass, [
|
||
|
|
PDO::ATTR_TIMEOUT => '5',
|
||
|
|
PDO::ATTR_EMULATE_PREPARES => false,
|
||
|
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||
|
|
PDO::MYSQL_ATTR_LOCAL_INFILE => true,
|
||
|
|
]);
|
||
|
|
$db->query("CREATE DATABASE IF NOT EXISTS $db_name");
|
||
|
|
|
||
|
|
return response()->json([
|
||
|
|
'State' => '200',
|
||
|
|
'Success' => 'Database '.$db_name.' created',
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
return response()->json([
|
||
|
|
'Error' => $e->getMessage(),
|
||
|
|
'State' => $e->getCode(),
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
|
||
|
|
return response()->json([
|
||
|
|
'State' => '200',
|
||
|
|
'Success' => 'Seems okay',
|
||
|
|
]);
|
||
|
|
}
|
||
|
|
}
|