私はクラスとPDOを初めて使いました。私は私ができる、ページで、DBへの接続となるように、接続を閉じるための独立した機能を持つクラスを作成しようとしています:ページ内の接続の取得:PDOとPHPクラス
- オープン
$db->connOpen
- との接続は、すべてのクエリを実行しますIページ内で必要
は私が推測する
$db->connClose
class database { private $host = ''; private $db_name = ''; private $charset = ''; private $username = ''; private $password = ''; public function setHost($host) { $this->host = $host; } public function setDbName($db_name) { $this->db_name = $db_name; } public function setUser($username, $password) { $this->username = $username; $this->password = $password; } public function connOpen() { try { $dsn = "mysql:host=$this->host;dbname=$this->db_name;charset=$this->charset"; $db = new PDO($dsn, $this->username, $this->password, array(PDO::ATTR_PERSISTENT => true)); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo $e->getMessage(); } } public function connClose() { $db = null; } }
でスクリプトの末尾に接続を閉じます問題は、以下のようなクエリをPDOよりも呼び出すために、データベースへの接続を2倍にして、クラスPDO
を再びインスタンス化する必要があるためです。
$stmt = $dbo->prepare('SELECT * FROM products WHERE id=:id');
$stmt->execute(array(':id' => $id));
$res = $stmt->fetchAll(PDO::FETCH_ASSOC);
私の質問は以下のとおりです。
- どのように私は上記のようなクラスを使用して欲しいものを達成することができますか?
- この場合、固定接続をで使用していますか?
おかげ
ここでの問題は、あなたのクラスが本質的に役に立たないということです。そのためだけにクラスを書くことはしないでください。役に立つだけのことをすることができるクラスを書く。 –