इसे सुरक्षित और कार्यात्मक बनाने के लिए इसमें अपना कोड बदलें:
<?php
// Connect to the database
mysql_connect ("localhost","Username","Password")
or die ('Error: ' . mysql_error());
echo "connected to database!";
mysql_select_db ("Database");
// Insert data into table
$Email= mysql_real_escape_string($_POST['Input2']);
$Name= mysql_real_escape_string($_POST['Input3']);
$Company= mysql_real_escape_string($_POST['Input4']);
$Price= mysql_real_escape_string($_POST['Input5']);
$action = mysql_real_escape_string('insert php code for button here');
$query = "INSERT INTO CustomerInformation
(Email,Name,Company,Price,Tab Count,Action)
VALUES
('$Email', '$Name', '$Company', '$Price', '$action') ";
mysql_query($query) or die ('Error updating database');
echo "Database updated successfully!";
?>
ध्यान दें कि आपको id
डालने की आवश्यकता नहीं है तालिका में। यदि आपके पास एक ऑटोइनक्रिकमेंट फ़ील्ड है id
MySQL से आपके लिए एक आईडी स्वतः निर्मित हो जाएगी।mysql_real_escape_string()
मानों से बच निकलता है आपके लिए। हमेशा अपने $var
. को घेरे रहें '
. के साथ क्वेरी में सिंगल कोट्स या mysql_real_escape_string()
होगा नहीं काम! और इसे कभी भी कॉलम/टेबल या डेटाबेस नामों के लिए उपयोग न करें, केवल मानों के लिए।
देखें:अधिक जानकारी के लिए ये प्रश्न:
सामान्य रूप से SQL इंजेक्शन:"बॉबी टेबल्स" से SQL इंजेक्शन कैसे होता है " XKCD कॉमिक वर्क?
डायनेमिक टेबल नामों का उपयोग करते समय SQL इंजेक्शन से बचाव:डायनामिक टैबलेटनाम के साथ SQL इंजेक्शन को कैसे रोकें?