【发布时间】:2017-01-01 21:30:41
【问题描述】:
我刚刚开始 oop,现在,即使是非常简单的事情也让我感到困惑! 这是我的 mysqli 连接类:
class DB{
private $con;
public function __construct(){
$this->con=new mysqli('localhost','root','','dbName');
if(!$this->con){
echo '<b>There was a problem connecting to database! </b><br />errno: '.$con->connect_errno;
exit;
}
$this->con->set_charset("utf8");
}
public function query($query){
return $this->con->query($query);
}
}
假设我要这样使用它:
$a=mysqli_real_escape_string($_POST['a']);
$b=mysqli_real_escape_string($_POST['b']);
$query='SELECT `name` FROM `someTable` WHERE `type`={'.$a.'}';
$query2='SELECT `name` FROM `someTable` WHERE `type`={'.$b.'}';
$DB = NEW DB;
$test=$DB->query($query);
$DB2 = NEW DB;
$test2=$DB2->query($query2);
我刚刚从类 DB 创建了 2 个对象。 这是否意味着每个对象都有一个新的 mysql 连接?如果是,我该如何避免?
我知道我可以在 __destruct() 函数中使用 mysqli_close(),但我在某处(可能在这个站点 :) 中读到创建和销毁多个 mysql 连接并不好。
我该怎么办? p.s:另外,正如我所说,我是 oop 的新手(以及 mysqli),所以如果对我的课程有任何评论(例如,我是否将字符集设置在正确的位置?)我会很荣幸。
【问题讨论】: