У меня есть соединение 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
У вас есть ответ? Переменная должна быть определена во включенном файле. Я смущен. Спасибо за ваши ответы!
Проблема с переменной областью. Посмотрите на 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']; }
$ db – глобальная переменная для includehomepage
функции 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);