Periksa properti yang tepat untuk kolom
Pertama-tama, pastikan Anda telah membuat kolom spasial yang tepat di database dengan menggunakan GEOMETRY
kata kunci.
CREATE TABLE sp_house (geom GEOMETRY, d_nop VARCHAR(255));
Memasukkan data ke dalam database dengan autentikasi
Setelah Anda membuat kolom dengan properti yang tepat, Anda dapat memasukkan data ke dalam database Anda. Namun, kode Anda terbuka lebar untuk SQL Injection
dan jenis peretasan basis data lainnya karena Anda memasukkan data secara langsung tanpa otentikasi apa pun. Untuk menghindarinya, gunakan prepared statements
dan mysqli_real_escape_string
fungsi. Juga, periksa apakah Anda memiliki sintaks yang tepat untuk kueri dan ganti STGeomFromText
ke ST_GeomFromText
.
<?php
include_once 'db.php';
$nop = $_POST['nop'];
$plot_bng = $_POST['plot_bng'];
// You can also check that the variables are empty or not ...
// Clean the variables and prepare for inserting
$plot_bng = mysqli_real_escape_string($con, $plot_bng);
$nop = mysqli_real_escape_string($con, $nop);
$sql = "INSERT INTO sp_house (geom, d_nop)
VALUES (ST_GeomFromText(POINT(?)), ?)";
// Prepared statement for inserting
$stmt = $conn->prepare($sql); // prepare statement for inserting
$stmt->bind_param("ss",$plot_bng,$nop); // replace question marks with values
$stmt->execute(); // execute command
$stmt->close(); // close connection
echo json_encode(array("value"=>1));
mysqli_close($con);
?>
Referensi dan bacaan lebih lanjut
Membuat Kolom Spasial di MySQL
Mengisi Kolom Spasial
Cara menghindari Injeksi SQL ?
Cara menggunakan pernyataan yang disiapkan ?