无法从其他文件获取变量

时间:2019-08-03 13:46:45

标签: php mysqli

我正在尝试从数据库中获取数据并使用变量将其回显,但是我对此有疑问。当我尝试从其他文件获取变量时,它显示了此错误:

  

未定义变量:con in。

以下代码:

functions.php中的代码:

include "authentication.php";

function GetData() {
$id = session_id();
$result3 = mysqli_query($con,"SELECT * FROM accounts where id='$id'");
while($row3 = mysqli_fetch_array($result3));
{ 
$email=$row3['email'];
$fullname=$row3['fullname'];
$usualname=$row3['usualname'];
$lastname=$row3['lastname'];
}
}

authentication.php中的代码:

$DATABASE_HOST = 'localhost';
$DATABASE_USER = '***';
$DATABASE_PASS = '***';
$DATABASE_NAME = '***';

$con = mysqli_connect($DATABASE_HOST, $DATABASE_USER, $DATABASE_PASS, $DATABASE_NAME);
if ( mysqli_connect_errno() ) {

    die ('Failed to connect to MySQL: ' . mysqli_connect_error());
}

当我尝试从其他文件获取变量时也会发生这种情况。 在这里,您可以从不同的文件和不同的变量中获得一些错误的屏幕截图:

enter image description here

enter image description here

两个文件都在同一个名为PHPscripts的目录中:

enter image description here

2 个答案:

答案 0 :(得分:1)

这似乎是范围界定的问题。

请记住,在PHP中,无法从函数访问global范围内的变量。在尝试访问global $con;之前,必须在函数GetData()中明确进行类似$con的操作。

从系统设计的角度来看,这不是最佳方法。这将使跟踪变量变得困难。您将不知道谁(脚本的哪一部分)正在访问该全局变量,也不知道如何对其进行修改或以什么顺序进行修改。这可能会导致一些很难识别的错误。

答案 1 :(得分:0)

require_once dirname(__FILE__) . auth.php;

Require_once require 以及Unix完整路径的工作原理很像。在代码中替换 include 中风。