Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да вмъкнете пространствени данни в MySQL с PHP?

Проверете правилното свойство за колоните

Преди всичко се уверете, че сте създали правилните пространствени колони в базата данни, като използвате GEOMETRY ключова дума.

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

Вмъкване на данни в базата данни с удостоверяване

След като създадете колоните с правилното свойство, можете да вмъкнете данните във вашата база данни. Вашият код обаче е широко отворен за SQL Injection и друг вид хакване на бази данни, тъй като вмъквате данни директно без какъвто и да е вид удостоверяване. За да го избегнете, използвайте prepared statements и mysqli_real_escape_string функция. Също така проверете дали имате правилния синтаксис за заявката и заменете STGeomFromText към 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);
?>

Справочник и допълнителна литература

Създаване на пространствени колони в MySQL
Попълване на пространствени колони
Как да избегнете SQL инжектиране ?
Как да използвате подготвени отчети ?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Логически проблем на MySQL LEFT JOIN на множество таблици

  2. Разлика между лявото съединение и лявото външно съединение

  3. Запазете данните офлайн преди публикуване

  4. Използване на Python и MySQL в ETL процеса:Използване на Python и SQLAlchemy

  5. log4j2 JDBC мениджърът не може да се свърже с базата данни