Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅在一个页面上找不到数据库连接变量_Php_Mysqli - Fatal编程技术网

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

Php 仅在一个页面上找不到数据库连接变量,php,mysqli,Php,Mysqli,连接文件是: $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 =

连接文件是:

$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());
    }

这是一个范围问题

$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);

您在全局范围内定义变量,但尝试在函数范围内访问它。这是行不通的。在函数中尝试以下操作:$\u GLOBALS['DBconnect']了解变量范围。但要快速修复,请包括行global$DBconnect;在函数中。确保这是connection.php的正确路径。2.它是在您的全局函数范围中定义的,而不是所需的函数范围。啊,是的,感谢尝试在函数中使用全局变量是问题所在
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);