這裏是我的index.phpphp mysql:如何避免在一個類中的多個數據庫連接?
<?
require("Annonce.php");
$annonce = new Annonce();
$annonce->id=1;
$annonce->delete();
?>
我Annonce.php是!
<?php
require("DB.php");
class Annonce extends DB {
}
?>
最後DB是:
<?php
$db = new PDO('mysql:host=localhost;dbname=annonces;charset=utf8', 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
class DB {
public static $debug = true;
function __construct() {
# code...
}
function delete() {
$id = $this->id;
$table = get_class($this);
$sql="delete from $table where id=$id";
if ($this::$debug) echo $sql;
}
function get() {
$sql="select *...";
}
}
?>
我不知道什麼是定義$ DB連接的最佳策略是什麼?
如果我在DB類中定義它,它會在任何時候創建一個「Annonce」對象時建立一個連接。也許使用$ db作爲GLOBAL(我認爲它不乾淨)
對此有何建議?
也許你會對[Singleton pattern]感興趣(http://php.net/manual/de/language.oop5.patterns.php)。 – Debflav
或依賴注入容器模式 –