mencoba connect database

This commit is contained in:
2026-06-10 07:57:17 +07:00
parent a9ab80ee45
commit 134ccf6fea
10 changed files with 113 additions and 435 deletions
+52 -25
View File
@@ -1,35 +1,62 @@
<?php
/**
* WebGIS - Konfigurasi & Koneksi Database
*/
// Pastikan PHP tidak menampilkan error sebagai HTML (merusak output JSON)
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);
error_reporting(0);
define('DB_HOST', getenv('DB_HOST') ?: 'localhost');
define('DB_USER', getenv('DB_USER') ?: 'root');
define('DB_PASS', getenv('DB_PASS') !== false ? getenv('DB_PASS') : '');
define('DB_NAME', getenv('JALAN_DB_NAME') ?: 'WEB_GIS');
$host_sekarang = $_SERVER['HTTP_HOST'];
/**
* Mengembalikan koneksi MySQLi.
* Jika koneksi gagal, langsung output JSON error dan exit.
*/
function getConnection()
{
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if (strpos($host_sekarang, 'localhost') !== false || strpos($host_sekarang, '127.0.0.1') !== false) {
$host = "localhost";
$user = "root";
$pass = "";
$db = "WEB_GIS";
} else {
$host = "to00g0c4cwsws8gsoc4c08og";
$user = "mysql";
$pass = "FzeWTKBJzGMHk47S6UI0w0wdFLKbANsrfoFDZDwVnxNDFS1qtBT9lFFcTfyJgdcf";
$db = "WEB_GIS";
}
if ($conn->connect_error) {
http_response_code(500);
echo json_encode([
'status' => 'gagal',
'pesan' => 'Koneksi database gagal: ' . $conn->connect_error
]);
exit;
}
$conn = new mysqli($host, $user, $pass);
if ($conn->connect_error) {
http_response_code(500);
echo json_encode(['status' => 'gagal', 'pesan' => 'Koneksi database gagal: ' . $conn->connect_error]);
exit;
}
$conn->set_charset('utf8mb4');
$conn->query("CREATE DATABASE IF NOT EXISTS `$db` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci");
$conn->select_db($db);
$conn->set_charset('utf8mb4');
// Auto-create tables
$conn->query("
CREATE TABLE IF NOT EXISTS `tb_jalan` (
`id` INT NOT NULL AUTO_INCREMENT,
`nama_jalan` VARCHAR(100) NOT NULL,
`status_jalan` ENUM('Nasional','Provinsi','Kabupaten') NOT NULL,
`panjang_jalan` DECIMAL(12,2) NOT NULL DEFAULT '0.00',
`geojson` JSON NOT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
");
$conn->query("
CREATE TABLE IF NOT EXISTS `tb_parsil` (
`id` INT NOT NULL AUTO_INCREMENT,
`nama_parsil` VARCHAR(100) NOT NULL,
`status_kepemilikan` ENUM('SHM','HGB','HGU','HP') NOT NULL,
`luas_tanah` DECIMAL(16,4) NOT NULL DEFAULT '0.0000',
`geojson` JSON NOT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
");
function getConnection() {
global $conn;
return $conn;
}
?>