在php函数中返回一个数组

时间:2016-06-13 10:40:02

标签: php arrays

我有以下代码来检索用户信息:

function getUserProfile($id) {              
            $sql_query_profile="SELECT * FROM users WHERE id=$id";
            $user_profile=@mysqli_query($dbconfig,$sql_query_profile);
            $user_details_profile=@mysqli_fetch_array($user_profile,MYSQLI_ASSOC);
            return $user_details_profile;
        }

当我调用此函数时,它返回null值。

$user= getUserProfile($_POST['txt_id']);
    var_dump ($user);

有人可以建议更好的主意吗?

2 个答案:

答案 0 :(得分:0)

您正在尝试访问函数中的$dbconfig,这是全局变量。要访问全局变量,请在函数中使用global关键字或传递config变量以自行运行。

function getUserProfile($id) {  
            global $dbconfig;            
            $sql_query_profile="SELECT * FROM users WHERE id=$id";
            $user_profile=@mysqli_query($dbconfig,$sql_query_profile);
            $user_details_profile=@mysqli_fetch_array($user_profile,MYSQLI_ASSOC);
            return $user_details_profile;
        }

不要使用' @'处理@Epodax建议,不要使用@处理你的错误而不是抑制它们,使用@时调试是不可能的,在你纠正之前我们将无法帮助你。

答案 1 :(得分:0)

您正在尝试访问$ dbconfig变量,请通过getUserProfile函数参数。因为$ dbconfig可能无法检索数据库连接。所以请按照以下方法使用它,同时将其删除@符号。

        function getUserProfile($id,$dbconfig) { 

        $sql_query_profile="SELECT * FROM users WHERE id=$id";
        $user_profile=@mysqli_query($dbconfig,$sql_query_profile);
        $user_details_profile=@mysqli_fetch_array($user_profile,MYSQLI_ASSOC);
        return $user_details_profile;
    }

或者在main中使用IT全局声明配置。  global $ dbconfig;之后调用函数。