我使用构造函数连接到数据库并断开与析构函数的连接。我想知道的是:当我从构造函数中调用它时它是否更有效?析构函数怎么样?使用预准备语句连接到数据库是安全还是良好的编码?
如何创建插入方法?
public function __construct($host, $username, $password, $dbname, $tablename="")
{
$this->host = $host;
$this->username = $username;
$this->password = $password;
$this->dbname = $dbname;
$this->tablename = $tablename;
$this->con = mysqli_connect($host, $username, $password, $dbname); //connecting...
if(mysqli_connect_errno($this->con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else
{
echo "Connection Established<br>";
}
}
public function __destruct()
{
if(mysqli_close($this->con))
{
echo "<br>Connection Terminated";
}
}
答案 0 :(得分:1)
我要在__construct中设置db登录数据,或者默认提供这些数据。如果不这样做,则每次创建该类的实例时都必须输入登录数据...
public function __construct($host = 'localhost', $username = 'admin', $password = 'admin', $dbname = 'mydatabase' , $tablename="mytable")
您也可以将它们设置为类属性。但这个概念是一样的。您还可以将类与SQL的SQL连接分开,并在另一个类中进行连接,并在构造函数中实例化该类。您可能希望从this answer获得灵感。