Mysql
 sql >> база данни >  >> RDS >> Mysql

Неуловена грешка:Извикване на членска функция подготви() при нулева грешка

Просто имаш някои грешки в кода си. Опитайте се да използвате тези редове:

Файл за връзка :

<?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();

user.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, в противен случай няма да можете да правите заявки във вашата база данни
  • PDO prepare() методът чака заявка в първия аргумент
  • Не е необходимо да предавате масив към метода 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. mysql замества специалните html знаци с UTF еквиваленти

  2. mysql като повишаване на производителността

  3. Съобщение:count():Параметърът трябва да бъде масив или обект, който прилага Countable codeigniter на centos

  4. Спиране на MySQL заявка след първия ред

  5. проверка на потребителското състояние (активен, неактивен) на уеб страница