私はPDOとOOPの両方にかなり慣れていません。データベースに接続し、挿入を更新して変更するクラスを作成しようとしています。いくつか質問があります:
コンストラクターでデータベースに接続するのは良い習慣ですか?
1 つのクラスで更新、挿入、変更、および接続を行うべきか、それとも複数のクラスに分割するべきか?
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);
}
}