Controleer de juiste eigenschap voor de kolommen
Zorg er allereerst voor dat u de juiste ruimtelijke kolommen in de database hebt gemaakt met behulp van de GEOMETRY
zoekwoord.
CREATE TABLE sp_house (geom GEOMETRY, d_nop VARCHAR(255));
Voeg gegevens in de database in met authenticatie
Nadat u de kolommen met de juiste eigenschap hebt gemaakt, kunt u de gegevens in uw database invoegen. Uw code staat echter algemeen open voor SQL Injection
en andere soorten database-hacks, omdat u gegevens rechtstreeks invoert zonder enige vorm van authenticatie. Om dit te vermijden, gebruikt u prepared statements
en de mysqli_real_escape_string
functie. Controleer ook of u de juiste syntaxis voor de query hebt en vervang STGeomFromText
naar 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);
?>
Referentie en verder lezen
Ruimtelijke kolommen maken in MySQL
Ruimtelijke kolommen vullen
SQL-injectie vermijden ?
Voorbereide verklaringen gebruiken ?