我是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
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果为对象的每一个方法创建单独的数据库链接是最好的方法吗?有没有更好或替代的方法来做到这一点?希望我已经解释得很好了.
以下是正确的吗?
$x = new Account("localhost", "root", "");
Run Code Online (Sandbox Code Playgroud)
-and将有自己的连接...然后在完成后关闭?
Cha*_*rry 10
我不建议以这种方式创建数据库连接.创建一个连接并使用它将其注入对象.您不需要为每个对象创建新连接.
代码示例:
$connection = new mysqli('localhost', 'user', 'password');
$Account = new Account($connection);
Run Code Online (Sandbox Code Playgroud)
需要改变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
}
}
Run Code Online (Sandbox Code Playgroud)
我还建议您查看有关选择MySQL API的php.net文档.如果你真的想在PHP和MySQL上使用OOP,你需要交换到mysqli或者PDO你正在使用的API并不真正支持OOP接口.