这是我的 db 类,用于使用 pdo ext 连接数据库。
class db
{
private $host;
private $dbname;
private $username;
private $password;
public function __construct($host,$db,$name,$pass)
{
$this->host=$host;
$this->dbname=$db;
$this->username=$name;
$this->password=$pass;
$dsn = 'mysql:'.$this->dbname.';'.$this->host;
try
{
$conn = new PDO($dsn, $this->username, $this->password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo 'ERROR: ' . $e->getMessage();
}
}
}
我像这样在登录类中调用 db 类...
$host='localhost';
$db='techy_issue_tracker';
$name='root';
$pass='';
$base= new db($host,$db,$name,$pass);
这是问题,如果我使用这样的一行,要在登录类(扩展 db 类)中进行 pdo 查询...
$stmnt = $conn->prepare('SELECT id FROM users WHERE name :name OR email = :email');
它产生两个错误,说.. 注意:未定义的变量:conn ...和致命错误:调用非对象上的成员函数prepare()...
我可以通过简单地将所有 pdo 内容放在登录类中来解决这个问题,但我仍然很好奇......你们如何从另一个类调用对象(这是 pdo 类的实例?)。
带有 PDO 的基于 PHP 类的用户系统 - 在非对象上调用成员函数 prepare()这个问题很有趣,但不太了解:/
没有太多练习OOP,所以一些好的解释将不胜感激!谢谢。