Я не могу устранить эту ошибку. Вызов функции-члена quote () на null - PullRequest
0 голосов
/ 25 мая 2020

Я программирую веб-сайт на localhost и обнаружил эту ошибку, когда пытаюсь войти в систему, чтобы отправить нового пользователя. null в C: \ xampp \ htdocs \ recipes \ db_manager \ users. php: 31 Трассировка стека: # 0 C: \ xampp \ htdocs \ recipes \ users_manager \ checkSubmit. php (15): notExistsUser ('usertest') # 1 {main} вставлено в C: \ xampp \ htdocs \ recipes \ db_manager \ users. php в строке 31

checkSubmit. php:

<?php
    session_start();
    include_once("../db_manager/common.php");
    if(isset($_POST["username"]) && isset($_POST["pwd"])) {
        $username = $_POST["username"];
        $pwd = $_POST["pwd"];
        if(notExistsUser($username)){
            submit($username, $pwd);
            redirect("../index.php", "User successfully submitted!");
        } else {
            redirect("../submit.php", "This username already exists");
        }
    }
?>

funcion notExistsUser в пользователях. php

function notExistsUser($username) {
    $db = attachdb();
    $user = $db->quote($username); //Line 31
    $rows = $db->query("SELECT * FROM Users WHERE username = $user");
    if($rows->rowCount() > 0)
        return false;
    else
        return true;
}

function attachdb ()

function attachdb() {
    $add = 'mysql:dbname=Recipes;host=localhost';
    try {
        $db = new PDO($add, 'root', 'mysql');
        return $db;
    } catch (PDOException $ex) {
        ?>
        <p>A database error occurred!.</p>
        <?php
        return NULL;
    }
}

Что означает эта ошибка и как ее исправить?

1 Ответ

0 голосов
/ 25 мая 2020

Ваше соединение с базой данных должно быть неправильным. Вы уверены, что ваш пароль для root - mysql? attachdb () вернет NULL при проблемах с подключением.

// at this point $db IS NULL and not the desired PDO Instance
$user = $db->quote($username); //Line 31

Чтобы исправить это: вы должны убедиться, что соединение с базой данных работает, и тогда нет ошибки.

...