Kiểm tra thuộc tính phù hợp cho các cột
Trước hết, hãy đảm bảo rằng bạn đã tạo đúng cột không gian trong cơ sở dữ liệu bằng cách sử dụng GEOMETRY
từ khóa.
CREATE TABLE sp_house (geom GEOMETRY, d_nop VARCHAR(255));
Chèn dữ liệu vào cơ sở dữ liệu với xác thực
Sau khi bạn tạo các cột với thuộc tính phù hợp, bạn có thể chèn dữ liệu vào cơ sở dữ liệu của mình. Tuy nhiên, mã của bạn được mở rộng rãi cho SQL Injection
và các loại hack cơ sở dữ liệu khác vì bạn chèn dữ liệu trực tiếp mà không cần bất kỳ loại xác thực nào. Để tránh điều đó, hãy sử dụng prepared statements
và mysqli_real_escape_string
hàm số. Ngoài ra, hãy kiểm tra xem bạn có đúng cú pháp cho truy vấn và thay thế STGeomFromText
tới 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);
?>
Tham khảo và đọc thêm
Tạo cột không gian trong MySQL
Tạo các cột không gian
Cách tránh SQL Injection ?
Cách sử dụng câu lệnh chuẩn bị ?