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

यह PHP MySQL पंजीकरण फॉर्म क्यों काम नहीं करता है?

तैयार विवरण के साथ संशोधित कोड नीचे दिया गया है।

पहला कदम डेटाबेस से जुड़ना है। ऐसा करने के लिए, हमें एक्सेस विवरण को परिभाषित करने की आवश्यकता है।

// Define Database Credentials
$servername = "localhost"; //Server Name
$username = "KyleHulse"; //Username to the DB
$password = "(my password)"; //Password to the DB
$dbname = "csdb1082"; //Name of the Database

// Create Database Connection
$conn = new mysqli($servername, $username, $password, $dbname);

अब कनेक्शन जांचें।

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

इसके बाद, आप अपनी क्वेरी चलाते हैं। कृपया ध्यान दें कि चूंकि यह आपकी निजी परियोजना है, इसलिए मैं SHA1 . का उपयोग कर रहा हूं आपके पासवर्ड के हैशिंग के रूप में। एक बड़े प्रोजेक्ट के लिए, मैं आपके पासवर्ड को सुरक्षित करने के तरीके पर और शोध करने की सलाह देता हूं।

क्वेरी को चलाने के लिए, पहले इसे तैयार करना है। आप ऐसा ही करते हैं।

$stmt = $conn->prepare("INSERT INTO feedback (user, password, email) VALUES (?, ?, ?)");

इसमें आप स्टेटमेंट को $stmt . में स्टोर करते हैं चर। क्वेरी में INSERT INTO . है तालिका के नाम के बाद। आपके मामले में यह feedback . है ।

इसके बाद आप पहले ब्रैकेट में सेव करने के लिए टेबल की फील्ड्स भरें। आपके मामले में यह होगा (user, password, email) उसके बाद VALUES

इसके बाद आप (?, ?, ?) . का उपयोग करके वास्तविक मानों के लिए प्लेसहोल्डर जोड़ते हैं . कृपया ध्यान दें कि ? . की कुल संख्या पिछले ब्रैकेट में फ़ील्ड की कुल संख्या से मेल खाना चाहिए।

अब आपको वेरिएबल्स को इन ? . से बाइंड करना होगा . यह इसके द्वारा किया जाता है,

$stmt->bind_param("sss", $user, $password, $email);

कृपया ध्यान दें कि "sss" पारित मूल्यों के प्रारूप हैं। नीचे प्रारूप हैं।

i - integer
d - double
s - string
b - BLOB

इसलिए आपको 3 मान पास करने होंगे, इसलिए आपके पास 3 s . हैं , उसके बाद वेरिएबल्स जहां आप HTML फॉर्म से मानों को स्टोर करेंगे,

$user = $_POST["user"];
$password = sha1($_POST["password"]); //simplest way to use SHA1 hash.
$email = $_POST["email"];

अब आपको केवल तैयार किए गए कथन को निष्पादित करने की आवश्यकता है।

$stmt->execute();

बस!

नीचे पूरा कोड है।

// Define Database Credentials
$servername = "localhost"; //Server Name
$username = "KyleHulse"; //Username to the DB
$password = "(my password)"; //Password to the DB
$dbname = "csdb1082"; //Name of the Database

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$stmt = $conn->prepare("INSERT INTO feedback (user, password, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $user, $password, $email);

$user = $_POST["user"];
$password = sha1($_POST["password"]); //simplest way to use SHA1 hash.
$email = $_POST["email"];

$stmt->execute();

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. असंगत वर्ण एन्कोडिंग प्राप्त करना:UTF-8 और ASCII-8BIT त्रुटि जब उपयोगकर्ता ASCII-8BIT वर्ण दर्ज करता है प्रदर्शित करता है

  2. MacOSX होमब्रेव mysql रूट पासवर्ड

  3. क्या मैं पहचानकर्ता (तालिका या फ़ील्ड नाम) या सिंटैक्स कीवर्ड को बाध्य करने के लिए पीडीओ तैयार कथन का उपयोग कर सकता हूं?

  4. स्प्रिंग बूट जेपीए:तालिका में JSON कॉलम को कैसे क्वेरी करें?

  5. java.sql.SQLException:अज्ञात प्रारंभिक वर्ण सेट इंडेक्स '255' कनेक्टर 8.0.11 के लिए सर्वर से प्राप्त हुआ