PHP - Mysqli连接使用面向对象的方式打开和关闭 - MySQLi
问题描述:
I am trying to find a way which does the following
- Object Oriented way
- Closing the connection efficiently
-
closing a connection anyways
<?php define("HOST", "localhost"); define("USER", "username"); define("PASS", "password"); define("DBNM", "database"); class ConnectionTest extends mysqli { private $link; function __construct() { $this->link = new mysqli(HOST, USER, PASS, DBNM); } function getLink(){ return $this->link; } function __destruct() { mysqli_close($this->link) } } ?>
To try to get to my objective
- Object Oriented way - Used a class
- closing connection efficiently - defined a function to close the connection
- closing a connection anyways - set the same function to be destructor of that class
As I am new to PHP, I would like to know:
- Is this technique proper?
- What complications could occur? or what are the disadvantages to this technique?
- Is there any improvement needed in this code?
我试图找到一种方法来执行以下操作 p>
- 面向对象的方式 li>
- 高效关闭连接 li>
-
无论如何关闭连接 p>
&lt ;?php define(“HOST”,“localhost”); define(“USER”,“username”); define(“PASS”,“password”); define(“DBNM “,”数据库“); 类ConnectionTest扩展了mysqli { private $ link; 函数__construct(){ $ this-&gt; link = new mysqli(HOST,USER,PASS ,DBNM); } 函数getLink(){ 返回$ this-&gt; link; } 函数__destruct(){ mysqli_close($ this-&gt; link)\ n} } ?&gt; code> pre> li> ul>
尝试达到我的目标 p>
- 面向对象的方式 - 有效地使用类 li>
- 关闭连接 - 定义了一个关闭连接的函数 li>
- 无论如何关闭连接 - 将相同的函数设置为该类的析构函数 li>
ol>
由于我是PHP新手,我想知道: p>
- 这种技术是否合适? li>
- 会发生什么并发症? 或者这项技术的缺点是什么? li>
- 此代码是否需要改进? li> ul> div>
答
Frankly, this class of yours makes very little sense as it effectively duplicates mysqli. All the things you want to achieve, are already implemented in mysqli:
- Object Oriented way - Mysqli is a class already.
- There is a function in mysqli to close a connection as well
- Which is closing a connection efficiently.
So I fail to see how is your class any better than mysqli.