Controlla la proprietà corretta per le colonne
Prima di tutto assicurati di aver creato le colonne spaziali corrette nel database utilizzando il GEOMETRY
parola chiave.
CREATE TABLE sp_house (geom GEOMETRY, d_nop VARCHAR(255));
Inserisci dati nel database con autenticazione
Dopo aver creato le colonne con la proprietà corretta, puoi inserire i dati nel tuo database. Tuttavia, il tuo codice è ampiamente aperto a SQL Injection
e altri tipi di hacking del database poiché inserisci i dati direttamente senza alcun tipo di autenticazione. Per evitarlo, usa prepared statements
e il mysqli_real_escape_string
funzione. Inoltre, controlla di avere la sintassi corretta per la query e sostituisci STGeomFromText
a 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);
?>
Riferimento e ulteriori letture
Creazione di colonne spaziali in MySQL
Popolamento di colonne spaziali
Come evitare SQL Injection ?
Come utilizzare le istruzioni preparate ?