PDO, не работающий в функции

Я пытаюсь сделать функцию для получения по запросу содержания страницы от таблицы MySQL с помощью оператора PDO Prepare. Мой код работает просто великолепно за пределами функции, которую я определил, но независимо от того, что я делаю это не будет работать в функции - я получаю следующую ошибку:

Фатальная ошибка: Вызов к функции членства готовится () на необъекте в/home/tappess1/public_html/pages/stations.php на строке 6

Вот мой PHP:

function getPageContent($page) {
        $st = $db->prepare("SELECT * FROM content WHERE title LIKE ?");
        $st->execute(array($page));
        $pageContent = $st->fetch();
        $text = wordwrap($pageContent['content'], 100, "\n");
        $tabs = 4;
        $text = str_repeat(chr(9), $tabs) . str_replace(chr(10), chr(10) . str_repeat(chr(9), $tabs), $text);
        echo $text;
    }

и затем

<?php getPageContent(Main);?>

Я даже попытался использовать запрос вместо, готовят оператор, просто звоня getPageContent (), и я получаю ту же ошибку.

Спасибо!

5
задан NightMICU 17 May 2010 в 19:48
поделиться

2 ответа

Вы пытаетесь получить доступ к переменной $ db , которая находится вне области области вашей функции.

Либо повторно инициализируйте свою базу данных с помощью функции $ db = new PDO .... , либо - возможно, лучше и проще в вашем случае - импортируйте глобальную переменную:

function getPageContent($page) {
  global $db;

Где и как Лучшее хранилище глобального объекта базы данных является предметом множества дискуссий. Если вы хотите вникнуть в это, то здесь - это одно из мест, с которого можно начать (на SO есть много других). Но если вы только начинаете знакомиться с PHP, я бы сказал, что использование глобальной переменной - это нормально.

14
ответ дан 18 December 2019 в 11:54
поделиться

Переменная $db неизвестна в вашей функции.

1
ответ дан 18 December 2019 в 11:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: