2010-05-18 14 views
0

한 페이지에서 MySQL 데이터베이스에 연결하고 쿼리해야하는 곳이 여러 번 있습니다. 그러나 내 코드는 허용하지 않습니다. 내 파일이 중첩 된 방식과 관련이 있을지는 모르겠지만 의미가 없습니다. 헤더 파일에서 SQL 연결을 여는 중입니다. 정의되지 않은 변수 : /Library/WebServer/Documents/pediatory_site/includes/dashboard_sql.php에서 DBC I 공지 사항PHP에서 함수 내 전역 변수 액세스하기

는 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.) 
?> 

: 잘못된 페이지의 상단은 다음과 같습니다

여기서 $ dbc는 mysqli_connect.php에 정의 된 데이터베이스 연결입니다.

누구든지 나를 도와 줄 수 있다면 좋을 것입니다.

+0

요청 당 한 번만 DB에 연결하고 해당 연결을 다시 사용해야합니다. – webbiedave

+0

그게 문제예요, 연결 변수가 어딘가에 없어 졌나요? – greenimpala

+0

mysqli_connect.php를 포함하고 있습니까? –

답변

1

아마 scope과 관련이 있습니다. 방법이 닫힙니다 후 VAR이 해제됩니다 DB를 연결을 만들기위한 require_once를 방법을 사용할 때 생각

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

이 문제가 해결되었습니다. 완벽 해, 고마워! – greenimpala

0

을 :은 $ DBC 변수가 여러 번 사용하는 경우

$dbc = 1; 

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

echo $otherVar; // Undefined variable 

, 그것은 쓰기 짧다 파일에 연결. 그 때문에

<?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.) 
?> 

를 작동하는 경우 필요하거나 작업의 이런 종류의 포함 시도하고 확인, 난 당신이 시도하고 템플릿/header.inc로 이동 게시 된 코드에 포함 방법에 require_once를 변경하고 require_once 메소드를 include로 변경하고 이것이 도움이되는지 확인하십시오.

해야합니다. 그렇지 않으면 별도의 파일을 통해 연결을 분리하는 대신 동일한 파일에서 데이터베이스 연결을 작성하십시오.

+0

범위와 관련이있는 것처럼 보입니다. 어쨌든 감사합니다! – greenimpala