कॉलम के लिए सही प्रॉपर्टी की जांच करें
सबसे पहले, सुनिश्चित करें कि आपने GEOMETRY
का उपयोग करके डेटाबेस में सही स्थानिक कॉलम बनाए हैं कीवर्ड।
CREATE TABLE sp_house (geom GEOMETRY, d_nop VARCHAR(255));
डेटाबेस में प्रमाणीकरण के साथ डेटा डालें
सही प्रॉपर्टी वाले कॉलम बनाने के बाद आप अपने डेटाबेस में डेटा डाल सकते हैं। हालांकि, आपका कोड SQL Injection
के लिए व्यापक रूप से खुला है और अन्य प्रकार की डेटाबेस हैकिंग क्योंकि आप बिना किसी प्रकार के प्रमाणीकरण के सीधे डेटा सम्मिलित करते हैं। इससे बचने के लिए prepared statements
use का इस्तेमाल करें और 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 में स्थानिक कॉलम बनाना
एसक्यूएल इंजेक्शन से कैसे बचें ?
तैयार किए गए स्टेटमेंट का इस्तेमाल कैसे करें ?