仅在一个页面上找不到数据库连接变量


Database connection variable not being found only on one page

连接文件为:

$DBconnect = mysqli_connect("localhost", "root", "", "project" );

这在所有页面上都有效,除了一个页面,它给出了这个错误:未定义变量:DBconnect

:

include_once('connection.php');
// Function that will convert a user id into their username
function getusername($uid) {
$res = mysqli_query($DBconnect, "SELECT username FROM users WHERE id='".$uid."' LIMIT 1") or die(mysql_error());

谢谢你的建议

修改

    function getusername($uid){
$res = mysqli_query($DBconnect, "SELECT username FROM users WHERE id='".$uid."' LIMIT 1") or die(mysql_error());
}

    function getusername($uid){
    global $DBconnect;
    $res = mysqli_query($DBconnect, "SELECT username FROM users WHERE id='".$uid."' LIMIT 1") or die(mysql_error());
    }

function getusername($uid,$DBconnect){
        $res = mysqli_query($DBconnect, "SELECT username FROM users WHERE id='".$uid."' LIMIT 1") or die(mysql_error());
        }

这是一个作用域问题。

$DBConnect在全局作用域中是可用的,但是您不能在函数中自动访问全局作用域。因此,将$DBConnect作为参数传递给函数,一切都很好。

include_once('connection.php');
function getusername($uid, $DBConnect) {
    $res = mysqli_query($DBconnect, "SELECT username 
                                     FROM users 
                                     WHERE id='$uid' LIMIT 1"); 
    if ( ! $res ) {
       echo mysql_error();
       exit;
    }
}
// call function with an extra parameter i.e. the $DBConnect
getusername($uid, $DBConnect);