gpt4 book ai didi

引用 PDO 对象的 PHP 类

转载 作者:行者123 更新时间:2023-12-04 06:03:34 27 4
gpt4 key购买 nike

我正在创建 2 个类,从 1 个类中我将另一个类称为 PDO 对象。但是当我引用该类的任何字符串时,而不是当 PDO Object.有任何想法吗?
这是我的代码

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();
}
}

最佳答案

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 对象,并添加了一个 getConnection 方法来访问 PDO 对象。

您应该使用 __construct构造函数的关键字,将构造函数命名为类名是旧语法,使代码更难编辑。

最后一点,这取决于人,但我更喜欢在 protected 和私有(private)属性或方法前加上下划线 _ ,这样我们可以很容易地识别方法/属性是否可以在类之外访问。你应该避免使用像 Result 这样的变量。因为 PHP 区分大小写所以 Result不等于 result ,因此最好避免拼写错误以将变量名称保持为小写(当您想要执行驼峰式时,应设置)。

关于引用 PDO 对象的 PHP 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8636729/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com