Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để chèn dữ liệu không gian trong MySQL bằng PHP?

Kiểm tra thuộc tính phù hợp cho các cột

Trước hết, hãy đảm bảo rằng bạn đã tạo đúng cột không gian trong cơ sở dữ liệu bằng cách sử dụng GEOMETRY từ khóa.

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

Chèn dữ liệu vào cơ sở dữ liệu với xác thực

Sau khi bạn tạo các cột với thuộc tính phù hợp, bạn có thể chèn dữ liệu vào cơ sở dữ liệu của mình. Tuy nhiên, mã của bạn được mở rộng rãi cho SQL Injection và các loại hack cơ sở dữ liệu khác vì bạn chèn dữ liệu trực tiếp mà không cần bất kỳ loại xác thực nào. Để tránh điều đó, hãy sử dụng prepared statementsmysqli_real_escape_string hàm số. Ngoài ra, hãy kiểm tra xem bạn có đúng cú pháp cho truy vấn và thay thế STGeomFromText tới 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);
?>

Tham khảo và đọc thêm

Tạo cột không gian trong MySQL
Tạo các cột không gian
Cách tránh SQL Injection ?
Cách sử dụng câu lệnh chuẩn bị ?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xác thực với tư cách là một người dùng cụ thể trong MySQL

  2. SQL tự nối để trả về các hàng cụ thể

  3. Vòng lặp MySQL qua các bảng

  4. java.sql.SQLException:Chỉ mục tập hợp ký tự ban đầu không xác định '255' nhận được từ máy chủ cho trình kết nối 8.0.11

  5. Spring boot JPA:Sử dụng thư viện để tải hàng loạt dữ liệu cho MySQL