Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL और PHP अनपेक्षित T_Variable

रोकें

पोस्ट से सीधे डेटाबेस में सम्मिलित करना हमेशा एक बुरा विचार होता है। यही कारण है कि PHP वर्तमान में बहुत ही सहज ज्ञान युक्त जादुई उद्धरणों के साथ अटका हुआ है।

आपको अपने डेटा से बचने के लिए कम से कम mysql_real_escape_string() का उपयोग करना चाहिए। उदाहरण के लिए:

$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
OR die(mysql_error());

$query = "INSERT INTO users VALUES (
    '" . mysql_real_escape_string($_POST["username"]) . "',
    '" . mysql_real_escape_string($_POST["sha_pass_hash"]) . "',
    '" . mysql_real_escape_string($_POST["email"]) . "',
    '2'
)";

mysql_query($query);

आपको ऐसा करने का कारण सुरक्षा आधारित है। उदाहरण के लिए यदि कुछ दुर्भावनापूर्ण उपयोगकर्ता नाम फ़ील्ड को '); DROP TABLE users; पहले अपने डेटा से बचने के बिना। आप अंत में निम्नलिखित क्वेरी को आँख बंद करके चलाएंगे:

INSERT INTO users VALUES (''); DROP TABLE users;

निश्चित रूप से आपके आवेदन के लिए कौन सा पाठ्यक्रम अच्छा नहीं होगा।

यह न्यूनतम . है आपको करना चाहिए।

वास्तव में आपको वास्तव में MySQLi<पर जाना चाहिए। /ए> जो एक बहुत अधिक आधुनिक MySQL इंटरफ़ेस है। यहाँ एक उदाहरण है

$mysqli = new mysqli('mysql_host', 'mysql_user', 'mysql_password', 'mysql_database');

$query = "INSERT INTO users VALUES (
    '" . $mysqli->real_escape_string($_POST["username"]) . "',
    '" . $mysqli->real_escape_string($_POST["sha_pass_hash"]) . "',
    '" . $mysqli->real_escape_string($_POST["email"]) . "',
    '2'
)";

$mysqli->query($query);

तुम भी एक प्रक्रियात्मक शैली में MySQL का उपयोग कर सकते हैं। इसलिए यदि ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग आपकी पहुंच में नहीं है, फिर भी आपको MySQLi के साथ कोई समस्या नहीं होगी।

आशा है कि यह मदद करता है।



  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 एक फ़ील्ड को NULL के रूप में चुनें

  2. विशिष्ट WooCommerce टैग शामिल करने के लिए SQL क्वेरी

  3. mysql.connector पायथन में अंतिम डेटाबेस स्थिति नहीं देता है

  4. mysql से चेकबॉक्स में 3 से अधिक डेटा पुनर्प्राप्त करें

  5. आंशिक कीवर्ड मिलान के लिए स्फिंक्स खोज