Я пытаюсь сделать функцию для получения по запросу содержания страницы от таблицы 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 (), и я получаю ту же ошибку.
Спасибо!
Вы пытаетесь получить доступ к переменной $ db
, которая находится вне области области вашей функции.
Либо повторно инициализируйте свою базу данных с помощью функции $ db = new PDO ....
, либо - возможно, лучше и проще в вашем случае - импортируйте глобальную переменную:
function getPageContent($page) {
global $db;
Где и как Лучшее хранилище глобального объекта базы данных является предметом множества дискуссий. Если вы хотите вникнуть в это, то здесь - это одно из мест, с которого можно начать (на SO есть много других). Но если вы только начинаете знакомиться с PHP, я бы сказал, что использование глобальной переменной - это нормально.