mysql — PHP неопределенная переменная соединение mysqli

У меня есть MySQL соединение, которое включено в отдельный файл:

require 'settings.php';

и у меня есть файл со всеми функциями, в том числе:

require 'functions.php';

В настройках там это выглядит так:

$db = mysqli_connect("host", "username", "passwort", "database");
if(!$db) {
exit("Error: ".mysqli_connect_error());
}

и функция использует это соединение следующим образом:

function includehomepage() {
$data = array();
$query = "SELECT pagecontent FROM `pages` WHERE `id` = `0`";
$query = mysqli_query($db, $query);
$data = mysqli_fetch_assoc($query);
return $data['pagecontent'];
}

Но я получаю сообщение об ошибке, подобное этому:

Undefined variable: db in /var/... on line 18

У тебя есть ответ? Переменная должна быть определена во включенном файле .. Я запутался. Спасибо за ваши ответы!

2

Решение

Проблема переменной области. смотреть на global

function includehomepage() {
global $db;
$data = array();
$query = "SELECT pagecontent FROM `pages` WHERE `id` = '0'";
$query = mysqli_query($db, $query);
$data = mysqli_fetch_assoc($query);
return $data['pagecontent'];
}
4

Другие решения

$ db — это глобальная переменная includehomepage функция. Если вы хотите получить к нему доступ, вы должны передать его функции или объявить ее как глобальную внутри функции.

лайк

function includehomepage() {
global $db;
$data = array();
$query = "SELECT pagecontent FROM `pages` WHERE `id` = '0'";
$query = mysqli_query($db, $query);
$data = mysqli_fetch_assoc($query);
return $data['pagecontent'];
}

или иметь его в качестве параметра в вашей функции и передать его через вызов.

function includehomepage($db) {
$data = array();
$query = "SELECT pagecontent FROM `pages` WHERE `id` = '0'";
$query = mysqli_query($db, $query);
$data = mysqli_fetch_assoc($query);
return $data['pagecontent'];
}
includehomepage($db);
2

По вопросам рекламы [email protected]