Files
TUGAS_SIG_JOHANESSATRIACHRI…/Projek Jalan/api/config.php
T

68 lines
1.9 KiB
PHP

<?php
// Database configuration
define('DB_PATH', __DIR__ . '/../db/markers.db');
// Create db directory if it doesn't exist
if (!is_dir(__DIR__ . '/../db')) {
mkdir(__DIR__ . '/../db', 0777, true);
}
// Set full permissions on db directory
@chmod(__DIR__ . '/../db', 0777);
// Connect to SQLite database
function getDB() {
try {
// Ensure full permissions on db directory and database file
@chmod(__DIR__ . '/../db', 0777);
$db = new PDO('sqlite:' . DB_PATH);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Set full permissions on database file
if (file_exists(DB_PATH)) {
@chmod(DB_PATH, 0777);
}
// Initialize database schema
initializeDB($db);
return $db;
} catch (PDOException $e) {
die(json_encode(['error' => 'Database connection failed: ' . $e->getMessage()]));
}
}
// Initialize database schema
function initializeDB($db) {
$db->exec('
CREATE TABLE IF NOT EXISTS markers (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(255) NOT NULL,
latitude REAL NOT NULL,
longitude REAL NOT NULL,
open_24_hours BOOLEAN DEFAULT 0,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS roads (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(255) NOT NULL,
status VARCHAR(100) NOT NULL,
length REAL NOT NULL,
coordinates TEXT NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS parcels (
id INTEGER PRIMARY KEY AUTOINCREMENT,
owner_status VARCHAR(100) NOT NULL,
area REAL NOT NULL,
coordinates TEXT NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
');
}
// Set JSON header
header('Content-Type: application/json');
?>