Проверете правилното свойство за колоните
Преди всичко се уверете, че сте създали правилните пространствени колони в базата данни, като използвате GEOMETRY
ключова дума.
CREATE TABLE sp_house (geom GEOMETRY, d_nop VARCHAR(255));
Вмъкване на данни в базата данни с удостоверяване
След като създадете колоните с правилното свойство, можете да вмъкнете данните във вашата база данни. Вашият код обаче е широко отворен за SQL Injection
и друг вид хакване на бази данни, тъй като вмъквате данни директно без какъвто и да е вид удостоверяване. За да го избегнете, използвайте prepared statements
и mysqli_real_escape_string
функция. Също така проверете дали имате правилния синтаксис за заявката и заменете STGeomFromText
към 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);
?>
Справочник и допълнителна литература
Създаване на пространствени колони в MySQL
Попълване на пространствени колони
Как да избегнете SQL инжектиране ?
Как да използвате подготвени отчети ?