Как я могу исправить класс "DB" не найдена ошибка? - PullRequest
0 голосов
/ 04 мая 2020

Я относительно новичок в PHP. Пробовал в течение нескольких недель, но никакого прогресса нет вообще. У меня 2 файла, БД. php, индекс. php.

По индексу. php Я пытаюсь получить экземпляр PDO для подключения к базе данных, но не могу этого сделать. Мне постоянно говорят, что класс DB не найден

Вот код,

в индексе. php

require_once('core/init.php');

<?
DB::getInstance();
?>

В базе данных. php,

<?
class DB
{
    private static $_instance = null;
    private $_pdo, 
            $_query,
            $_error = false,
            $_results,
            $_count = 0;

    private function __construct()
    {
        try
        {
            $this->_pdo = new PDO('mysql:host=localhost;dbname=newtry', 'root', '');
        }
        catch (PDOException $e)
        {
            print "Error!: " . $e->getMessage() . "<br/>";
            die($e->getMessage());

        }

    }

    public static function getInstance()
    {
        if (!isset(self::$_instance))
        {
            self::$_instance = new DB();

        }
        return self::$_instance;
    }   
}

?>

в иници. php

<?php
session_start();

$GLOBALS['config'] = array(
    'mysql'=> array(
        'host'=> '127.0.0.1',
        'username' => 'root',
        'password' => '',
        'db' => 'newtry'
    ),
    'remember' => array(
        'cookie_name' => 'hash',
        'cookie_expire' => 604800
    ),
    'session' => array(
        'session_name' => 'user'

    )
);

spl_autoload_register(function($class) {
    require_once 'libraries/'.$class.'.php';

});

require_once 'functions/sanitize.php';

?>

1 Ответ

1 голос
/ 04 мая 2020

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

<?php
require_once('core/init.php');

DB::getInstance();
?>

То же самое с вашим DB файлом, теги должны быть <?php, а не <?. Вы также никогда не сможете импортировать файл БД в любой другой файл. Вы можете попробовать импортировать его напрямую, вот так.

<?php 
require_once('db.php');
DB::getInstance();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...