我对 PDO 和 OOP 都很陌生。我正在尝试编写一个连接到数据库并更新插入和修改它的类。我有几个问题:
在构造函数中连接数据库是一种好习惯吗?
一个类应该更新、插入、修改和连接,还是应该分成几个类?
为什么 runQuery 不起作用?我假设它是因为 $pdo 是在不同的范围内定义的。我将如何让这个工作?
如果该类包含在每个页面的顶部,这是否意味着每次加载新页面时它都会重新连接到数据库,这会导致安全问题吗?
为过多的问题道歉。提前感谢您的任何答案。
<?php
class Login{
private $_username;
private $_password;
private $_host;
private $_database;
private $_driver;
//Connect to the database
function __construct($configFile){
$connectionDetails = parse_ini_file($configFile);
$this->_username = $connectionDetails['username'];
$this->_password = $connectionDetails['password'];
$this->_host = $connectionDetails['host'];
$this->_database = $connectionDetails['database'];
$this->_driver = $connectionDetails['driver'];
$pdo = new PDO("$this->_driver:host=$this->_host;dbname=$this->_database", $this->_username, $this->_password);
}
public function loginAllowed($user, $pw){
$sth = $pdo->setFetchMode(PDO::FETCH_ASSOC);
print_r($sth);
}
public function runQuery($query, $params){
$sth = $this->pdo->prepare($query);
$sth->execute($params);
}
}