【问题标题】:OOP PHP function Connect, function DisconnectOOP PHP 函数连接、函数断开连接
【发布时间】: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-&gt;myconn){ $this-&gt;myconn = true; 将变量设置为 true,因此它在断开连接时制动。
  • 只要把@mysql_connect(($this->db_host,$this->db_user,$this->db_pass,$this->db_name);

标签: php oop mysqli


【解决方案1】:

在这个特定示例中,您不需要将 MySQLi 类包装在任何东西中,因为我在这里看到您只是在复制构造函数和 MySQLi::close() 功能,所以我强烈建议您看看The MySQLi Object in the PHP Documentation.

【讨论】:

    【解决方案2】:

    你忘记了一些非常小的东西。

    $this->myconn = new mysqli_connect("host","usr","pwd","db);
    

    您忘记了新关键字

    【讨论】:

      猜你喜欢
      • 2015-08-25
      • 1970-01-01
      • 2014-01-11
      • 2015-07-05
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      • 1970-01-01
      相关资源
      最近更新 更多