2010-05-18 83 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