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

标签 php mysql function

我有一个 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/

相关文章:

javascript - 具有 onClick 事件的 React 函数在控制台中抛出 "TypeError: Cannot read property ' handleDelete' of undefined”

PHP - 如何替换字符串中的 �

php - 查询中的准备语句结果

mysql - Ruby gem 版本兼容性问题

java - 多个复选框选中值

c++ - const 成员函数/方法的用处

javascript - 在 IE 11 中获取未定义的 javascript 函数

php - 对此 PHP 异常 try..catch 嵌套感到困惑

php - 处理大量对数据库的各种请求

php - 重新分配外国 ID 无冲突