我对PDO和PHP类有问题。
在index.php中,我有required_once
db.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] 删除。
我来说两句