连接文件为:
$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);