2010-05-18 3 views
0

Существует несколько раз на одной странице, где мне нужно подключиться и впоследствии запросить базу данных MySQL, но мой код мне не позволит. Я думаю, что это может быть связано с тем, как мои файлы вложены, но это не имеет смысла. Я открываю соединение SQL в файле заголовка. В верхней части страницы нарушившей выглядит следующим образом:Доступ к глобальным переменным внутри функций в PHP

<?php 
$page_title = 'Dashboard'; 
include('templates/header.inc'); // includes a 'require_once('mysqli_connect.php') and a small query to the database; 
require_once('includes/functions.php'); 
require_once('includes/dashboard_sql.php'); // Contains functions which connect to database (which are failing.) 
?> 

Я получаю ошибку PHP

Примечание: Undefined переменной: DBC в /Library/WebServer/Documents/pediatory_site/includes/dashboard_sql.php

Где $ dbc - это соединение с базой данных, определенное в mysqli_connect.php.

Если бы кто-нибудь мог мне помочь, это было бы здорово.

+0

Вы должны подключаться только к БД один раз за запрос и повторно использовать это соединение. – webbiedave

+0

В этом проблема, переменная подключения где-то где-то теряется? – greenimpala

+0

Вы включаете mysqli_connect.php? –

ответ

1

Возможно, это связано с scope.

$dbc = 1; 

function foo() { 
    echo $dbc; // Undefined variable 
    echo $GLOBALS['dbc']; // 1, like defined above 
    $otherVar = 2; 
} 

echo $otherVar; // Undefined variable 

Если переменная $ DBC используется несколько раз, это короче написать:

function foo() { 
    global $dbc; 
    echo $dbc; // 1, like defined above 
} 
+0

Это исправило это. Отлично спасибо! – greenimpala

0

Я думаю, при использовании метода require_once для создания соединения Д.Б. вар получает очищенную после того, как метод закрывает соединение с файлом. Попробуйте требуют или включать для такого рода операций, и проверьте, работает ли

<?php 
$page_title = 'Dashboard'; 
include('templates/header.inc'); // includes a 'require_once('mysqli_connect.php') and a small query to the database; 
require_once('includes/functions.php'); 
include('includes/dashboard_sql.php'); // Contains functions which connect to database (which are failing.) 
?> 

так, я изменил require_once в метод включения в код, который вы в курсе, попытаться перейти на шаблоны/header.inc и измените метод require_once на include и проверьте, помогает ли это.

Должно быть. попробуйте создать соединение с базой данных в том же файле, вместо этого разделите соединения на отдельные файлы.

+0

Похоже, что это связано с областью, спасибо в любом случае! – greenimpala

Смежные вопросы