在PHP中访问函数内的全局变量

时间:2010-05-18 22:29:56

标签: php database mysql

在一个页面中有多次我需要连接并随后查询MySQL数据库,但我的代码不会让我。我认为这可能与我的文件嵌套方式有关,但没有意义。我在头文件中打开SQL连接。违规页面的顶部如下所示:

<?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 in /Library/WebServer/Documents/pediatory_site/includes/dashboard_sql.php

其中$ dbc是mysqli_connect.php中定义的数据库连接。

如果有人能帮助我,那就太好了。

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分: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更改为您发布的代码中的include方法,尝试转到templates / header.inc并将require_once方法更改为include并检查是否有帮助。

它应该。 否则尝试在同一个文件中创建与数据库的连接,而不是通过单独的文件进行连接。