Verifique a propriedade correta para as colunas
Em primeiro lugar, certifique-se de ter criado as colunas espaciais corretas no banco de dados usando o
GEOMETRY
palavra-chave. CREATE TABLE sp_house (geom GEOMETRY, d_nop VARCHAR(255));
Inserir dados no banco de dados com autenticação
Depois de criar as colunas com a propriedade correta, você pode inserir os dados em seu banco de dados. No entanto, seu código é amplamente aberto a
SQL Injection
e outros tipos de invasão de banco de dados, pois você insere dados diretamente sem nenhum tipo de autenticação. Para evitá-lo, use prepared statements
e o mysqli_real_escape_string
função. Além disso, verifique se você tem a sintaxe correta para a consulta e substitua STGeomFromText
para 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);
?>
Referência e leitura adicional
Criando colunas espaciais no MySQL
Preenchendo colunas espaciais
Como evitar SQL Injection ?
Como usar declarações preparadas ?