考虑3个课程 DBCONNECT ,预订,新
class dbconnect {
protected $db_conn;
public $db_user='xxxx';
public $db_pass='xxxx';
public $db_host='localhost';
public $db_name='xxxx';
function connect() {
try{
$this->db_conn=new PDO("mysql:host=$this->db_host;dbname=$this->db_name",$this->db_user,$this->db_pass);
return $this->db_conn;
}
catch (Exception $e){
return $e->getMessage();
}
}
}
include_once ( 'class.dbconn.php' );
class Book{
public $link;
public function __construct(){
$db_conn=new dbconnect();
$this->link = $db_conn->connect();
return $this->link;
}
}
class new{
include_once 'classes/class.book.php';
$book = new Book();
}
一切正常,我的代码中没有错误,但我怀疑关闭了与数据库的连接。是否必须关闭连接?如果它是强制性的,那么如何关闭连接以及我需要在哪个类中编写代码?
答案 0 :(得分:0)
手动关闭连接不是强制性的。 PHP将自己处理它。如果您想手动关闭它,可以使用$this->db_conn = null;
public function disconnect() {
$this->db_conn = null
}
如果你想成为一个完美主义者,你也可以这样做,虽然没有必要
public function __destruct() {
$this->disconnect();
}
答案 1 :(得分:0)
您的新代码
<?php
class dbconnect {
protected $db_conn;
public $db_user='xxxx';
public $db_pass='xxxx';
public $db_host='localhost';
public $db_name='xxxx';
function connect() {
try{
$this->db_conn=new PDO("mysql:host=$this->db_host;dbname=$this->db_name",$this->db_user,$this->db_pass);
return $this->db_conn;
}
catch (Exception $e){
return $e->getMessage();
}
}
function disconnect()
{
try
{
$this->db_conn=null;
return $this->db_conn;
}
catch (Exception $e){
return $e->getMessage();
}
}
}
}
include_once ( 'class.dbconn.php' );
class Book{
public $link;
public function __construct(){
$db_conn=new dbconnect();
$this->link = $db_conn->connect();
return $this->link;
}
}
class new{
include_once 'classes/class.book.php';
$book = new Book();
$close = new dbconnect();
// this will close connection
$close->disconnect();
}?>
还有一件事是你可以创建构造函数和析构函数。