检索mysql表列的PHP函数不起作用


PHP function to retrieve mysql table column not working

我有一个PHP函数,我想用它从一个名为"members"的表中检索一列"username"。我以前使用过以下功能,没有任何问题。但现在,当我尝试在另一个项目中使用它时,它不会起作用。

以下是"functions.php"页面代码:

<?php
include 'connection.php';
function getusername(){
        $query = "SELECT `username` FROM `members` WHERE `ID`=`".$_SESSION['user_id']."`";
        if($result = mysqli_query($con, $query)){
            while($row = mysqli_fetch_assoc($result)){
                return $row['username'];
            }
        }
        mysqli_free_result($result);
}
?>

在我的login.php页面上,我有一个会话变量,它将表中的用户ID存储在"$_session['user_ID']"中。我已经回显了用户ID,所以我知道用户ID已经设置好了。

在我希望用户名回复到的页面上,我有以下代码片段:

<?php echo getusername();?>

我还将functions.php页面"包含"在我希望将用户名回复到的页面上。

$con没有在函数中设置,因此mysqli无法工作。此外,如果要在搜索的值周围使用backticks,则$_SESSION['user_id'] backticks用于列名,应在值周围使用'

这样试试:

<?php
include 'connection.php';
function getusername($con){
   $query = "SELECT `username` FROM `members` WHERE `ID`='".$_SESSION['user_id']."'";
   if($result = mysqli_query($con, $query)){
       $row = mysqli_fetch_assoc($result);
       mysqli_free_result($result);
       return $row['username'];
   }
}
?>

然后调用它将$con传递给函数:

 $username=getusername($con);

请注意,如果有结果,您的mysqli_free_result将不起作用,因为return将停止该功能。我对函数进行了一些更新,使其如您所期望的那样工作。