2010-05-18 80 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錯誤

注意:未定義的變量:DBC在/Library/WebServer/Documents/pediatory_site/includes/dashboard_sql.php

其中$ dbc是在mysqli_connect.php中定義的數據庫連接。

如果任何人都可以幫助我,這將是偉大的。

+0

每個請求只應連接到數據庫一次,並重用該連接。 – webbiedave 2010-05-18 22:31:49

+0

這就是問題,連接變量在某處丟失了? – greenimpala 2010-05-18 22:33:57

+0

你是否包含mysqli_connect.php? – 2010-05-18 22:34:39

回答

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 2010-05-18 22:59:35

0

我使用放在require_once方法用於創建數據庫連接的VAR被清除的方法關閉後,當想連接到文件。 嘗試要求或包括這種操作,並檢查其是否正常工作

<?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方法更改爲包含,並檢查是否有幫助。

它應該。 否則請嘗試在同一個文件中創建到數據庫的連接,而不是單獨文件中的分隔連接。

+0

看起來好像是用範圍做的,謝謝! – greenimpala 2010-05-18 22:59:52