我有一个 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页面上,我有一个 session 变量,它将表中的用户ID存储在“$_SESSION['user_id']”中。我已回显用户 ID,因此我知道用户 ID 已设置。
在我希望用户名回显的页面上,我有以下代码片段:
<?php echo getusername();?>
我还希望用户名回显到的页面上“包含”functions.php 页面。
最佳答案
您的 $con 未在您的函数内设置,因此 mysqli 将无法工作。此外,您在要搜索的值周围使用反引号$_SESSION['user_id']
反引号用于列名称,您应该在值周围使用'
。
尝试这样:
<?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
将停止该函数。我对该函数进行了一些更新,使其能够按您的预期工作。
关于PHP 函数检索 mysql 表列不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23071310/