我剛剛開始使用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