59 lines
1.8 KiB
PHP
59 lines
1.8 KiB
PHP
<?php
|
|
ini_set('display_errors', 0);
|
|
error_reporting(0);
|
|
ob_start();
|
|
|
|
include "db_config.php";
|
|
header('Content-Type: application/json');
|
|
|
|
$raw = file_get_contents("php://input");
|
|
$data = json_decode($raw, true);
|
|
|
|
$nama = $data['nama'] ?? '';
|
|
$status = $data['status'] ?? 'Kabupaten';
|
|
$panjang = floatval($data['panjang'] ?? 0);
|
|
$koordinatInput = $data['koordinat'] ?? [];
|
|
|
|
if (is_string($koordinatInput)) {
|
|
$decoded = json_decode($koordinatInput, true);
|
|
$koordinat = (json_last_error() === JSON_ERROR_NONE) ? json_encode($decoded) : '[]';
|
|
} else {
|
|
$koordinat = json_encode($koordinatInput);
|
|
}
|
|
|
|
if(!$nama) {
|
|
ob_clean();
|
|
echo json_encode(["status" => "error", "message" => "Nama tidak boleh kosong"]);
|
|
exit;
|
|
}
|
|
|
|
try {
|
|
$stmt = $conn->prepare("INSERT INTO jalan (nama,status,panjang,koordinat) VALUES (?,?,?,?)");
|
|
if(!$stmt) {
|
|
$err = $conn->error;
|
|
file_put_contents('error_log.txt', date('[Y-m-d H:i:s]') . " JALAN PREPARE ERR: $err\n", FILE_APPEND);
|
|
ob_clean();
|
|
echo json_encode(["status"=>"error","step"=>"prepare","message"=>$err]);
|
|
exit;
|
|
}
|
|
|
|
$stmt->bind_param("ssds", $nama, $status, $panjang, $koordinat);
|
|
|
|
if($stmt->execute()){
|
|
$id = $stmt->insert_id;
|
|
ob_clean();
|
|
echo json_encode(["status"=>"success","id"=>$id]);
|
|
} else {
|
|
$err = $stmt->error;
|
|
file_put_contents('error_log.txt', date('[Y-m-d H:i:s]') . " JALAN EXEC ERR: $err | Payload: $raw\n", FILE_APPEND);
|
|
ob_clean();
|
|
echo json_encode(["status"=>"error","step"=>"execute","message"=>$err]);
|
|
}
|
|
$stmt->close();
|
|
} catch (Exception $e) {
|
|
$err = $e->getMessage();
|
|
file_put_contents('error_log.txt', date('[Y-m-d H:i:s]') . " JALAN EXCEPTION: $err | Payload: $raw\n", FILE_APPEND);
|
|
ob_clean();
|
|
echo json_encode(["status"=>"error","step"=>"exception","message"=>$err]);
|
|
}
|
|
?>
|