Задать вопрос
@Chesterfield25

Как исправить Call to a member function query() on null?

Есть класс Database
<?php
class Database {

    // укажите свои учетные данные базы данных
    private $host = "localhost";
    private $db_name = "patedfrb_faucet";
    private $username = "patedfrb_faucet";
    private $password = "vvv27361920dfvvv";
    public $conn;

    // получаем соединение с БД
    public function getConnection(){

        $this->conn = null;

        try {
            $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
            $this->conn->exec("set names utf8");
        } catch(PDOException $exception){
            echo "Connection error: " . $exception->getMessage();
            die();
        }

        return $this->conn;
    }
}
?>


И обработка регистрации

<?php

require "database.php";

$database = new Database();
$db = $database->getConnection();

//Получаем данные из полей
$login = $_POST['login'];
$email = $_POST['email'];
$password = $_POST['password'];

//Проверяем зарегистрирован ли аккаунт или нет если да то выводим ошибку
$check_login = $conn->query("SELECT * FROM `usersss` WHERE `login` = '$login'")->fetch(PDO::FETCH_ASSOC);
if(!empty($check_login) > 0) {
    echo "Данный аккаунт уже зарегестрирован!";
    exit();
}

//Проверяем зарегистрирован ли email или нет если да то выводим ошибку
$check_email = $conn->query("SELECT * FROM `usersss` WHERE `email` = '$email'")->fetch(PDO::FETCH_ASSOC);
if(!empty($check_email) > 0) {
    echo "Данный Email уже зарегестрирован!";
    exit();
}

//Шифруем пароль с помощью md5
$password = md5($password."1afa148eb41f2e7103f21410bf48346c");

//Записываем данные в бд
$query = "INSERT INTO `usersss` (`login`, `password`, `email`) VALUES (:login, :password, :email)" or die("Ошибка записи");

$result = $conn->prepare($query);
$result->bindValue(':login', $login, PDO::PARAM_STR);
$result->bindValue(':password', $password);
$result->bindValue(':email', $email, PDO::PARAM_STR);
$result->execute();
//Редирект на главную страницу
header('Location: /index.php');


На строке 14 получаю ошибку Call to a member function query() on null

$check_login = $conn->query("SELECT * FROM `usersss` WHERE `login` = '$login'")->fetch(PDO::FETCH_ASSOC);
  • Вопрос задан
  • 1532 просмотра
Подписаться 1 Простой 4 комментария
Решения вопроса 1
GogElf
@GogElf
Хокаге
Коннект в другой переменной
$check_login = $db->query("SELECT * FROM `usersss` WHERE `login` = '$login'")->fetch(PDO::FETCH_ASSOC);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы