Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wstawić dane przestrzenne w MySQL za pomocą PHP?

Sprawdź właściwą właściwość kolumn

Przede wszystkim upewnij się, że utworzyłeś właściwe kolumny przestrzenne w bazie danych za pomocą GEOMETRY słowo kluczowe.

CREATE TABLE sp_house (geom GEOMETRY, d_nop VARCHAR(255));

Wstaw dane do bazy danych z uwierzytelnianiem

Po utworzeniu kolumn z odpowiednią właściwością możesz wstawić dane do swojej bazy danych. Jednak Twój kod jest szeroko otwarty na SQL Injection i inne rodzaje włamań do baz danych, ponieważ wstawiasz dane bezpośrednio bez żadnego uwierzytelniania. Aby tego uniknąć, użyj prepared statements i mysqli_real_escape_string funkcjonować. Sprawdź również, czy masz właściwą składnię zapytania i zastąp STGeomFromText do 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);
?>

Odniesienia i dalsze czytanie

Tworzenie kolumn przestrzennych w MySQL
Wypełnianie kolumn przestrzennych
Jak uniknąć wstrzykiwania SQL ?
Jak korzystać z przygotowanych wyciągów ?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak korzystać z Hibernacji eqOrIsNull()

  2. Użyć BLOB lub VARBINARY dla zaszyfrowanych danych w MySQL?

  3. Zastrzeżone słowo w nazwie kolumny - wstaw do MySQL

  4. Procedura składowana MySQL:parametr OUT nie jest ustawiany

  5. Jak wybrać wpisy z tej relacji?