【问题标题】:Fatal error: Using $this when not in object context even whilst in object致命错误:即使在对象中,不在对象上下文中也使用 $this
【发布时间】:2013-09-28 22:22:36
【问题描述】:

我在调用我的数据库类并运行查询函数时收到此错误。

这是我的课:

class dbConnect {

public $mysqli = null;

public function __construct() {
    $this->mysqli = new mysqli( "localhost", "root", "pass", "database" );
    if ($this->mysqli->connect_errno) 
    {
        echo "Error MySQLi: ("&nbsp. $this->mysqli->connect_errno 
        . ") " . $this->mysqli->connect_error;
        exit();
    }
    $this->mysqli->set_charset("utf8"); 
}

public function __destruct() {
    $this->closeDB();
}

public function runQuery($qry) {
    $result = $this->mysqli->query($qry);
    return $result;
}

这是我的页面:

$db = new dbConnect();
$insert = "INSERT INTO `users` (`username`,`password`,`email`,`ip`,`date`) VALUES ('$username','$pw','$email','$ip','$time')";

$db->runQuery( $insert ) or die("Error MySQLi: ("&nbsp. $db->mysqli->connect_errno . ") " . $db->mysqli->connect_error);

编辑:

我现在收到错误 Dbr`0

【问题讨论】:

    标签: php class mysqli


    【解决方案1】:

    在骰子的最后一行,你不在对象中。

    【讨论】:

      【解决方案2】:

      改变这个:

      $db->runQuery( $insert ) or die("Error MySQLi: ("&nbsp. $this->mysqli->connect_errno . ") " . $this->mysqli->connect_error);
      

      到这里:

      $db->runQuery( $insert ) or die("Error MySQLi: ("&nbsp. $db->mysqli->connect_errno . ") " . $db->mysqli->connect_error);
      

      不过,我建议您创建一个方法来获取错误,而不是直接访问您的数据库对象 ($db->mysqli)。

      【讨论】:

      • 是的,这就是我通常会做的事情。即使将 $this 更改为 $db 后,我也会收到错误 Dbr`0
      • @Sygon 这完全是另一个问题......我们需要更多信息来弄清楚到底发生了什么。
      【解决方案3】:

      在您的or die 语句中您忘记了$this,将其替换为$db

      【讨论】:

        【解决方案4】:

        我在你的类中没有看到你在 __destruct() 函数中调用它的任何 closeDB 函数,如下所示:$this->closeDB(); 在您的查询中也将$this->mysqli->connect_errno 替换为$db->mysqli->connect_errno

        【讨论】:

        • 那个函数是public function CloseDB() { $this->mysqli->close(); }
        猜你喜欢
        • 2010-12-11
        • 2011-01-21
        • 2017-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多