Überprüfen Sie die richtige Eigenschaft für die Spalten
Stellen Sie zunächst sicher, dass Sie die richtigen räumlichen Spalten in der Datenbank erstellt haben, indem Sie die GEOMETRY verwenden Schlüsselwort.
CREATE TABLE sp_house (geom GEOMETRY, d_nop VARCHAR(255));
Daten mit Authentifizierung in die Datenbank einfügen
Nachdem Sie die Spalten mit der richtigen Eigenschaft erstellt haben, können Sie die Daten in Ihre Datenbank einfügen. Ihr Code ist jedoch weitgehend offen für SQL Injection und andere Arten von Datenbank-Hacking, da Sie Daten direkt ohne jegliche Authentifizierung einfügen. Um dies zu vermeiden, verwenden Sie prepared statements und der mysqli_real_escape_string Funktion. Überprüfen Sie außerdem, ob Sie die richtige Syntax für die Abfrage haben, und ersetzen Sie STGeomFromText zu 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);
?>
Nachschlagewerk und weiterführende Literatur
Räumliche Spalten in MySQL erstellen
Räumliche Spalten füllen
So vermeiden Sie SQL-Injection ?
Vorbereitete Anweisungen verwenden ?