我正在创建2个Class,而从1个类我将另一个类称为PDO对象。但是当我引用该类的任何字符串时,而不是当PDO对象时。有任何想法吗? 这是我的代码
class Connection
{
private $dbcc;
public function Fn_Db_Conn()
{
$this->dbcc = new PDO( "mysql:host=localhost;dbname=db1;",
"root","pass1");
return $this->dbcc;
}
}
class Registration
{
private $Username;
private $dbc;
public function Registration($Un)
{
$this->Username = $Un;
$this->dbc = new Connection;
$this->dbc->Fn_Db_Conn();
}
public function Fn_User_Exist()
{
$Qry = "SELECT * FROM CMT_Users WHERE Username=@Username";
$Result = $this->dbc->prepare($Qry);
$Result->bindParam("@Username",$this->Username);
$Result->execute();
print $Result->rowCount();
}
}
答案 0 :(得分:3)
class Connection
{
private $_dbcc;
public function getConnection()
{
return $this->_dbcc;
}
public function __construct()
{
$this->_dbcc = new PDO( "mysql:host=localhost;dbname=db1;",
"root","pass1");
}
}
class Registration
{
private $_username;
private $_dbc;
public function __construct($un)
{
$this->_username = $un;
$this->_dbc = new Connection();
}
public function Fn_User_Exist()
{
$qry = "SELECT * FROM CMT_Users WHERE Username=@Username";
$result = $this->_dbc->getConnection()->prepare($qry);
$result->bindParam("@Username",$this->_username);
$result->execute();
print $result->rowCount();
}
}
我还修改了Connection类以在构造函数中创建PDO对象,并添加了一个用于访问PDO对象的getConnection方法。
您应该使用__construct
关键字作为构造函数,命名构造函数,因为类名是旧语法,并且使代码更难编辑。
最后一点,它取决于人,但我更喜欢用下划线_
预先设置受保护和私有属性或方法,这样我们就可以轻松识别方法/属性是否可以在类外访问。您应该避免使用像Result
这样的变量,因为PHP区分大小写,因此Result
不等于result
,所以最好避免拼写错误以保持变量名称为小写(appart when you want做camelCase)。