我正在尝试创建一个函数,我可以简单地执行 <?php echo $user_args['user_id']; ?>
调用变量。如果用户登录,我可以使用这种格式。但我无法让这个函数在 PDO 中工作。
我收到此错误消息:
Notice: Undefined variable: db in /Applications/XAMPP/xamppfiles/htdocs/app/user/func/user.func.php on line 35
Fatal error: Call to a member function prepare() on a non-object in /Applications/XAMPP/xamppfiles/htdocs/app/user/func/user.func.php on line 35
这是我正在尝试执行的功能:
$db = new PDO("mysql:host=$servername; dbname=$database", $username, $password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
function user_args() {
$user_id = $_SESSION['user_id'];
$args = func_get_args();
$fields = implode(', ', $args);
$query = $db->prepare("SELECT * FROM users WHERE user_id = :user_id");
$query->bindParam(':user_id', $user_id);
if($query->execute()) {
$query_success = $query->fetch(PDO::FETCH_ASSOC);
foreach($args as $arg) {
$args[$arg] = stripslashes($query_success[$arg]);
}
return $args;
}
}
$user_args = user_args('user_id',
'username',
'email',
'password');
echo $user_args['user_id']; // <- The function isn't working so I can't do this
我的代码有什么问题导致它不起作用?谢谢!
最佳答案
函数内部缺少 $db
function user_args($db) {
// ...
}
还在函数调用中添加$db:
$user_args = user_args($db, 'user_id',
'username',
'email',
'password');
关于php - 使用 func_get_args() 进行 PDO 查询;正在给出错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33969084/