Неустранимая ошибка: необработанная ошибка: вызов функции-члена query () / prepare () со значением NULL. Функция PDO не работает. он всегда говорит вызов функции-члена

0

Это мой код класса

<?php 

class DatabaseFunctions{

    public $serverName  = SERVER_NAME ;
    public $userName    = USER_NAME ;
    public $password    = PASSWORD ;
    public $dbName      = DB_NAME ;

    public $pdo;
    public $error;

    public function __construct()
    {
        $this->db_connect();        
    }

    private function db_connect()
    {
        try {
            $pdo = new PDO("mysql:host=$this->serverName;dbname=$this->dbName", 
                   $this->userName, $this->password);    
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
            //echo 'Connected successfully'; 
            }

        catch(PDOException $e)
        {
        echo "Connection failed: " . $e->getMessage();
        }
    }
    public function userIndex($query)
    {       
        //$stmt = $this->pdo->query($query);
        $stmt = $this->pdo->prepare($query);
        $stmt->execute();

        if($stmt-> rowCount() > 0)
        {
            return $read;
        }
        else
        {
        return false;
        }
    }

}

** И это мой **

    <?php
    session_start();    
    include('../../class/config.php');
    include('../../class/DatabaseFunctions.php');
    if(isset($_SESSION['user'])) {

    $db=new DatabaseFunctions();
    $query='SELECT * FROM members';
    $read=$db->userIndex($query);   
    print_r($read); 
    ?>

Неустранимая ошибка: Непринятая ошибка: вызов функции-функции-члена() в нуле в D:\Laravel\Xamp_new\htdocs\mou\bikroy\bikroyplus\class\DatabaseFunctions.php: 33 Трассировка стека: # 0 D:\Laravel\Xamp_new\htdocs\mou\bikroy\bikroyplus\admin\pages\users.php(12): DatabaseFunctions-> userIndex ('SELECT * FROM m...') # 1 {main} брошен в D:\Laravel\Xamp_new\htdocs\mou\bikroy\bikroyplus\class\DatabaseFunctions.php в строке 33

это ошибка.. Пожалуйста, помогите мне.. Примечание: База данных успешно подключена. но функция pdo не работает. он говорит о вызове функции-члена. Пожалуйста, помогите мне.

  • 1
    Вам также, вероятно, следует изменить переменные подключения к серверу с public объявлений на private .
Теги:
pdo

1 ответ

2
Лучший ответ

В вашей функции соединения $pdo определяется только внутри функции, вам нужно назначить ее $this->pdo...

function db_connect() { 
    try { 
        $this->pdo = new PDO("mysql:host=$this->serverName;dbname=$this->dbName", 
            $this->userName, $this->password); 
        $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

        //echo 'Connected successfully'; 
    } catch(PDOException $e) { 
        echo "Connection failed: " . $e->getMessage(); 
    } 
}
  • 0
    Большое вам спасибо, это работает .. Некоторое время мой мозг зависает как компьютер и не работает. огромное спасибо
  • 0
    если это работает для вас, upvote, так что это помогает другим

Ещё вопросы

Сообщество Overcoder
Наверх
Меню