【发布时间】:2014-04-28 20:29:20
【问题描述】:
慢慢进入 OOP PHP 的世界,目前正在研究数据库类并努力关闭我的连接。我收到的错误是;
警告:mysqli_close() 期望参数 1 为 mysqli,布尔值在第 34 行的 C:\Users\PC\Documents\XAMPP\htdocs\class.Database.php 中给出。
然后我收到自己的错误消息,无法关闭连接。我相信这是我在 mysqli_close 中的变量的问题。非常感谢任何帮助。我试过 $this->myconn 和 $myconn 但没有成功
<?php
class Database{
private $db_host = 'localhost';
private $db_user = 'c3337015';
private $db_pass = 'c3337015';
private $db_name = 'iitb';
public $myconn;
public function connect(){
if(!isset($this->myconn)){
$this->myconn = mysqli_connect($this->db_host,$this->db_user,$this->db_pass,$this->db_name);
if($this->myconn){
$this->myconn = true;
echo "connected";
return true;
}else{
echo "failed";
return false;
}}else{
echo "already connected";
return false;
}
}
public function disconnect()
{
if(isset($this->myconn))
{
if(mysqli_close($this->myconn)) // ERROR HERE
{
$this->myconn = false;
echo "connection closed";
return true;
}
else
{
echo "failed to close connection";
return false;
}
}else{
echo "no connection prescent";
}
}
}
【问题讨论】:
-
您的 connect 方法返回 true 或 false(永远不要像您正在做的那样在方法中回显!)您还将 $myconn 变量再次设置为 true,您需要重新调用对象。
-
这一行
if($this->myconn){ $this->myconn = true;将变量设置为 true,因此它在断开连接时制动。 -
只要把@mysql_connect(($this->db_host,$this->db_user,$this->db_pass,$this->db_name);