आपके कोड में बस कुछ गलतियाँ हैं। इन पंक्तियों का उपयोग करने का प्रयास करें:
कनेक्शन फ़ाइल :
<?php
class Connection {
public $dbh;
// Setting Database Source Name (DSN)
public function __construct() {
$dsn = 'mysql:host=localhost;dbname=employees';
// Setting options
$options = array (PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
// Making the connection to the database
try {
$this->dbh = new PDO($dsn, 'root', '', $options);
}
catch (PDOException $e) {
$this->error = $e->getMessage();
}
}
}
$connection = new connection();
users.php फ़ाइल:
<?php
include 'connection.php';
class Users {
public $name;
public $surname;
public $employmentDate;
public $connection;
public function __construct($connection)
{
$this->connection = $connection;
if(isset($_POST['Submit'])) {
$this->name = $_POST['name'];
$this->surname = $_POST['surname'];
$this->employmentDate = $_POST['employmentDate'];
}
}
// Inserting users values to the database table
public function insertUserValues() {
$query = 'INSERT INTO employee (name,surname,employment_date) VALUES (:name,:surname,:employmentDate)';
$stmt = $this->connection->dbh->prepare($query);
$stmt->bindValue(':name',$this->name, PDO::PARAM_STR);
$stmt->bindValue(':surname',$this->surname, PDO::PARAM_STR);
$stmt->bindValue(':employmentDate',$this->employmentDate, PDO::PARAM_STR);
$stmt->execute();
}
}
$users = new Users($connection);
$users->insertUserValues();
व्याख्या :
- आपको $connection चर को अपने उपयोगकर्ता वर्ग में पास करना होगा (या इसे
global $connection;
के साथ आयात करना होगा। ) - आपकी कनेक्शन फ़ाइल को dbh प्रॉपर्टी को दृश्यमान बनाना होगा, अन्यथा आप अपने डेटाबेस पर कोई क्वेरी नहीं कर पाएंगे
- पीडीओ prepare() विधि पहले तर्क में एक प्रश्न की प्रतीक्षा कर रही है
- यदि आप पहले ही अपने मानों को बाइंड कर चुके हैं, तो आपको एक्ज़ीक्यूट () विधि के लिए एक सरणी पास करने की आवश्यकता नहीं है