У меня есть 3 файла: index.php
, db.php
(база данных) и functions.php
вот пример того, что находится в каждом файле:
database.php:
define ("DB_HOST", "localhost");
define ("DB_USER", "root");
define ("DB_PASS", "1234");
define ("DB_NAME", "test");
try {
$dsn = "mysql:dbname=".DB_NAME.";host=".DB_HOST;
$dbh = new PDO($dsn, DB_USER, DB_PASS);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
index.php:
require $_SERVER['DOCUMENT_ROOT']."/config/db.php";
require $_SERVER['DOCUMENT_ROOT']."/config/functions.php";
if(isLoggedIn()) {
echo "hi";
}
functions.php:
function isLoggedIn() {
require $_SERVER['DOCUMENT_ROOT']."/config/db.php";
$stmt = $dbh->prepare("SELECT * FROM users....");
$stmt->execute();
}
Я получаю следующую ошибку:
Примечание: константа DB_HOST уже определена в /var/www/config/database.php
что я пробовал:
Я попытался заменить require
на require_once
во всех своих файлах, но выдает ошибку:
Неустранимая ошибка: неперехваченная ошибка: вызов функции-члена prepare () с нулевым значением в functions.php
require
наrequire_once
- person LF00   schedule 14.06.2017require
изfunctions.php
и передайте$dbh
вашейisLoggedIn
функции в качестве аргумента. - person Phil   schedule 14.06.2017exit
в вашcatch
блок или полностью удалитьtry...catch
- person Phil   schedule 14.06.2017require $_SERVER['DOCUMENT_ROOT']."/config/db.php";
Должно быть:require $_SERVER['DOCUMENT_ROOT']."/config/database.php";
У вас есть файл с именем database.php, пока вы пытаетесь импортировать db.php. Просто исправьте это, и все будет в порядке. - person pasignature   schedule 07.05.2019