MySqli объект -> запрос не работает в определенном файле PHP

0

У меня есть отдельный файл с экземпляром объекта mysqli который находится в папке, называемой includes в root называемом connect.php:

$db = new mysqli($host, $user, $password, $dbname);

if ($db -> connect_errno) {
    echo $db -> connect_error;
}

Моя первая страница имеет require и использует объект $db для выполнения задачи real_escape_string которая работает хорошо. У меня есть functions.php в includes в includes папку также. Внутри этого есть функция, называемая sendToDB которая использует функцию query. functions.php включает функцию require. Однако я получаю сообщение:

Неустранимая ошибка: вызов функции-функции-члена() для не-объекта...

Если я sendToDB экземпляр объекта в функции sendToDB он успешно записывает в БД. Как только я это вынесу, я получаю такое же сообщение. Это глобальная проблема? или я лучше всего создаю его везде, где он мне нужен? Также при использовании $db на нескольких страницах безопасно запускать $db->close(); после окончания с ним на каждой странице?

Теги:
mysqli

1 ответ

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

В начале функций, которые используют объект базы данных (например, sendToDB), убедитесь, что у вас есть строка:

global $db;

Это необходимо для использования глобальных переменных внутри функций.

  • 0
    Хороший материал :-) работает удовольствие. Я не думал, что это global потому что это required . Лучше всего иметь required или required_once как мой файл functions.php находится на других страницах php. Просто я прочитал, что php не любит, когда функции объявляются более одного раза.
  • 0
    Проверьте эту ссылку: stackoverflow.com/questions/2418473/… По сути, как только у вас есть функции в файле, вы должны выполнить require_once. Если он ответил на ваш вопрос, отметьте мой ответ как принятый :)
Показать ещё 3 комментария

Ещё вопросы

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