Zkontrolujte správnou vlastnost pro sloupce
Nejprve se ujistěte, že jste v databázi vytvořili správné prostorové sloupce pomocí GEOMETRY
klíčové slovo.
CREATE TABLE sp_house (geom GEOMETRY, d_nop VARCHAR(255));
Vložit data do databáze s ověřením
Po vytvoření sloupců se správnou vlastností můžete vložit data do databáze. Váš kód je však široce otevřený pro SQL Injection
a další druhy hackování databáze, protože data vkládáte přímo bez jakéhokoli druhu ověřování. Abyste se tomu vyhnuli, použijte prepared statements
a mysqli_real_escape_string
funkce. Zkontrolujte také, zda máte pro dotaz správnou syntaxi, a nahraďte STGeomFromText
na 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);
?>
Reference a další informace
Vytváření prostorových sloupců v MySQL
Vyplňování prostorových sloupců
Jak se vyhnout SQL Injection ?
Jak používat připravená prohlášení ?