У меня есть файл, который содержит другой файл:
index.php – динамический шаблон
<?php $db = new PDO("mysql:host=localhost;dbname=db", $DB_USER, $DB_PASSWORD); include(functions.php); ?>
functions.php
<?php $preparedStatement = $db->prepare("SELECT id FROM table LIMIT 1"); $preparedStatement->execute(); $firstId = $preparedStatement->fetchAll(); ?>
когда функции functions.php выполняются, я получаю:
Fatal error: Call to a member function prepare() on a non-object
на линии
$preparedStatement = $db->prepare("SELECT id FROM table LIMIT 1");
Что не так с этим кодом, чтобы он выдавал ошибку?
Редактировать: ошибка возникла из-за того, что я напрямую подключил файл functions.php, он не появился, когда он был включен из index.php, проблема, с которой я столкнулся, не была загружена в последующих включениях, что было вызвано тем, что я забыл правильно адресовать массивы в более позднем файле. Выбранный ответ правильный для вопроса, который я представил.
неправильное включение файлов;
include index.php
на странице function.php
, не включайте наоборот
Лучшая практика использования include_once