Ü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 ?