Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara memasukkan data spasial di MySQL dengan PHP?

Periksa properti yang tepat untuk kolom

Pertama-tama, pastikan Anda telah membuat kolom spasial yang tepat di database dengan menggunakan GEOMETRY kata kunci.

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

Memasukkan data ke dalam database dengan autentikasi

Setelah Anda membuat kolom dengan properti yang tepat, Anda dapat memasukkan data ke dalam database Anda. Namun, kode Anda terbuka lebar untuk SQL Injection dan jenis peretasan basis data lainnya karena Anda memasukkan data secara langsung tanpa otentikasi apa pun. Untuk menghindarinya, gunakan prepared statements dan mysqli_real_escape_string fungsi. Juga, periksa apakah Anda memiliki sintaks yang tepat untuk kueri dan ganti STGeomFromText ke 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);
?>

Referensi dan bacaan lebih lanjut

Membuat Kolom Spasial di MySQL
Mengisi Kolom Spasial
Cara menghindari Injeksi SQL ?
Cara menggunakan pernyataan yang disiapkan ?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Format PHP date() saat memasukkan ke datetime di MySQL

  2. Dimana saya bisa mendapatkan aplikasi chat room PHP/MYSQL

  3. Tidak dapat terhubung ke server MySQL di '127.0.0.1' (10061) (2003)

  4. Peta JPA tipe json MySQL, mendapat string yang kacau

  5. Pencegahan yang baik dari injeksi MYSQL?