PHP类中的PDO

行话

我对PDO和PHP类有问题。

在index.php中,我有required_oncedb.php其中包含

db.php

try {
    $pdo = new PDO("mysql:host=localhost;dbname=crm", "root", "root");
} catch (PDOException $e) {
    die("VIRHE: " . $e->getMessage());
}

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec("SET NAMES latin1");`

而且User.php也required_once位于index.php中:

User.php

class User
    {
        public function userInfo($var)
        {
            $userId = $_SESSION['user_id'];
            $query = $pdo->prepare("SELECT ? FROM users WHERE id = '".$userId."' LIMIT 1");
            $query->execute(array($var));
            $result = $query->fetch();

            return $result[$var];
        }
    }

但是PHP给我一个错误,$ pdo是User.php中的未定义变量。我究竟做错了什么?

碟形

就像@ Rizier123所说的那样,$ pdo不在范围内。我只是将PDO对象与该方法一起传递。所以看起来像这样。

class User
{
    public function userInfo($var, PDO $pdo)
    {
    $userId = $_SESSION['user_id'];
    $query = $pdo->prepare("SELECT ? FROM users WHERE id = '".$userId."' LIMIT 1");
    $query->execute(array($var));
    $result = $query->fetch();

    return $result[$var];
    }
}

然后,当您调用时,$user->userInfo($var)只需传入$ pdo对象,例如$user->userInfo($var, $pdo);

因此,总的来说,像这样:

$user = new User();

$userInfo = $user->userInfo($var,$pdo);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章