[英]PDO connection twice with MVC class
我是MVC的新手,我嘗試將PDO放入模型中
我伸出PDO在我的模型和頁面模型 ,從模型擴展
PDO->模型->頁面模型
我的問題是因為頁面模型擴展了Model,所以它將再次構造connect db。 (模型必須構造connect db,因為它是從PDO擴展的)
有人知道怎么修這個東西嗎?
class Model extends PDO{
protected $dsn = "mysql:host=127.0.0.1; dbname=abc; charset=utf8;",
$username = "member",
$password = "123",
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
public function __construct(){
//connect db
parent::__construct($this->dsn, $this->username, $this->password, $this->options);
echo "db connect";
}
}
class index_model extends Model{
public function __construct(){
parent::__construct();
//if i don't add this, will get error,
//but if i add, I will connect db twice
}
public function mainData(){
$sql = parent::prepare("SELECT pday FROM pday");
$sql->execute();
$data = $sql->fetch(PDO::FETCH_ASSOC);
echo $data['pday'];
}
}
我已經解決了問題,創建了另一個連接類,
並將其放入Model方法內部,頁面模型擴展了模型,因此不會構造兩次連接。
class Model{
protected $db;
public function connect(){
$this->db = new DB;
}
}
class DB extends PDO{
protected $dsn = "mysql:host=127.0.0.1; dbname=abc; charset=utf8;",
$username = "member",
$password = "123",
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
public function __construct(){
parent::__construct($this->dsn, $this->username, $this->password, $this->options);
}
}
class index_model extends Model{
private $sql;
public function mainData(){
$this->sql = $this->db->prepare("...");
...
}
}
$index = new index_model;
$index->connect();
$index->mainData();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.