我有以下代码来检索用户信息:
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);
有人可以建议更好的主意吗?
答案 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;之后调用函数。