[英]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.