php - 使用 func_get_args() 进行 PDO 查询;正在给出错误消息

标签 php mysql pdo

我正在尝试创建一个函数,我可以简单地执行 <?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/

相关文章:

mysql - sql匹配模式正则表达式查询

php - 来自另一个 PDO 查询结果的 PDO 查询

php - 我可以在 PHP 中混合使用 MySQL API 吗?

javascript - Laravel,我网站上的所有点击事件都已停止工作

php 每个循环插入数据两次,而不是按预期插入每一行

php - 如何将 Num1 与 Num2 与 num1-num2 格式组合?

php - 在 64 位 Windows 平台上运行 PHP - 问题?

查询中的MySql IF语句

mysql - 从 UDF 返回一个值。 (MySQL)

php - PDO 将多个插入语句绑定(bind)到映射的数组值