我刚刚开始使用oop,现在,即使非常简单的事情也让我感到困惑! 这是我的mysqli连接类:避免与db类的多个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一样),所以如果有关于我的课程的任何评论(例如我是否将字符集放在正确的地方?)我会很荣幸。
- 请使用....'''global'''变量在OOP标签....今天是2017年!? – pomaxa
@pomaxa你是对的。对一个实例使用全局变量不是很好的做法。但是这是一个例子,说明如果您真的想在创建之前使用它创建的实例。 – ICE
- 我只是留下类似问题的链接:http://stackoverflow.com/a/219599/164803 – pomaxa