我正在尝试从数据库中获取数据并使用变量将其回显,但是我对此有疑问。当我尝试从其他文件获取变量时,它显示了此错误:
未定义变量: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());
}
当我尝试从其他文件获取变量时也会发生这种情况。 在这里,您可以从不同的文件和不同的变量中获得一些错误的屏幕截图:
两个文件都在同一个名为PHPscripts的目录中:
答案 0 :(得分:1)
这似乎是范围界定的问题。
请记住,在PHP中,无法从函数访问global
范围内的变量。在尝试访问global $con;
之前,必须在函数GetData()
中明确进行类似$con
的操作。
从系统设计的角度来看,这不是最佳方法。这将使跟踪变量变得困难。您将不知道谁(脚本的哪一部分)正在访问该全局变量,也不知道如何对其进行修改或以什么顺序进行修改。这可能会导致一些很难识别的错误。
答案 1 :(得分:0)
require_once dirname(__FILE__) . auth.php;
Require_once 或 require 以及Unix完整路径的工作原理很像。在代码中替换 include 中风。