我刚刚开始掌握在 mysql_ 上使用 PDO,我目前正在将所有 mysql_ 函数转换为 PDO。我遇到的问题是我完全被这些功能难住了。这样做的目的是从登录时创建的 $_SESSION 中获取 user_id,并使用该 user_id 从数据库中返回他们的数据。但是,我收到了错误:
未定义变量:user_data
每次我尝试检查某事是否为真时,例如如果 admin = 1。这是 user_data 函数:
function user_data($user_id) {
global $con;
$data = array();
$user_id = (int)$user_id;
$func_num_args = func_num_args();
$func_get_args = func_get_args();
if ($func_num_args > 1) {
unset($func_get_args[0]);
$fields = '`' . implode('`, `', $func_get_args) . '`';
$data = "SELECT $fields FROM `users` WHERE `user_id` = $user_id";
$result = $con->prepare($data);
$result->execute();
$user_data = $result->fetch();
return $user_data;
}
}
如果banner = 1,这段代码应该调用该函数并销毁会话:
if (logged_in() === true) {
$session_user_id = $_SESSION['user_id'];
$user_data = user_data($session_user_id, 'user_id', 'username', 'password', 'email', 'password_recovery', 'moderator', 'admin');
if (user_banned($user_data['username']) === true) {
session_destroy();
header('Location: pts.php');
exit();
}
}
这是我尝试使用 $user_data 变量的示例:
<?php if ($user_data['moderator'] == 1)
如果这很难理解,我深表歉意,因为我在编码方面是个菜鸟,而且我不是特别擅长解释事情。如果您需要更多代码,请询问,我很乐意提供。
谢谢大家。