Sprawdź właściwą właściwość kolumn
Przede wszystkim upewnij się, że utworzyłeś właściwe kolumny przestrzenne w bazie danych za pomocą GEOMETRY
słowo kluczowe.
CREATE TABLE sp_house (geom GEOMETRY, d_nop VARCHAR(255));
Wstaw dane do bazy danych z uwierzytelnianiem
Po utworzeniu kolumn z odpowiednią właściwością możesz wstawić dane do swojej bazy danych. Jednak Twój kod jest szeroko otwarty na SQL Injection
i inne rodzaje włamań do baz danych, ponieważ wstawiasz dane bezpośrednio bez żadnego uwierzytelniania. Aby tego uniknąć, użyj prepared statements
i mysqli_real_escape_string
funkcjonować. Sprawdź również, czy masz właściwą składnię zapytania i zastąp STGeomFromText
do 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);
?>
Odniesienia i dalsze czytanie
Tworzenie kolumn przestrzennych w MySQL
Wypełnianie kolumn przestrzennych
Jak uniknąć wstrzykiwania SQL ?
Jak korzystać z przygotowanych wyciągów ?