我是PHP编程的初学者,并且希望获得有关一个小问题的帮助。请看下面的代码:
PHP代码
<?php class Account { public function register() { $db_link = mysql_connect("localhost","root",""); // Create Connection if (!$db_link) // Check connection { die(mysql_error()); } mysql_close($db_link); // Close Connection } public function login() { $con = mysql_connect("localhost","root","") // create connection if (!$con) // create connection { die(mysql_error()); } mysql_close($con); //close connection } } ?>
我的问题是,为对象的每个方法创建单独的数据库链接是否是最好的方法?有更好的方法或替代方法吗?希望我已经解释得足够好了。
以下内容正确吗?
$x = new Account("localhost", "root", "");
-和x将有自己的连接…然后在完成后关闭?
我不建议以这种方式创建数据库连接。创建一个连接,并使用该连接将其注入到对象中。您不需要为每个对象创建一个新的连接。
代码示例:
$connection = new mysqli('localhost', 'user', 'password'); $Account = new Account($connection);
将需要更改Account为如下所示:
Account
class Account { protected $connection; public function __construct(mysqli $connection) { $this->connection = $connection; } public function register() { // use $this->connection for db } public function login() { // use $this->connection for db } }
我还建议您看看有关选择MySQL API的php.net文档。如果您真的想将OOP与PHP和MySQL一起使用,则需要交换mysqli或PDO使用的API并不真正支持OOP接口。
mysqli
PDO