【问题标题】:Fatal error: Using $this when not in object context? [duplicate]致命错误:不在对象上下文中使用 $this? [复制]
【发布时间】:2021-06-28 07:14:43
【问题描述】:

我收到此错误,我不知道该怎么办?

致命错误:未捕获的错误:当不在对象上下文中时使用 $this /home/lumato/domains/lumato.nglyceum.eu/public_html/DBController.php:18 堆栈跟踪:#0 /home/lumato/domains/lumato.nglyceum.eu/public_html/drinks.php(144): runQuery('SELECT * FROM P...') #1 {main} 抛出 /home/lumato/domains/lumato.nglyceum.eu/public_html/DBController.php 第 18 行

<?php
function __construct() {
    $this->conn = $this->connectDB();
}

function connectDB() {
    $conn = mysqli_connect($this->host,$this->user,$this->password,$this->database);
    return $conn;
}

function runQuery($query) {
    $result = mysqli_query($this->conn,$query);
    while($row=mysqli_fetch_assoc($result)) {
        $resultset[] = $row;
    }       
    if(!empty($resultset))
        return $resultset;
}

function numRows($query) {
    $result  = mysqli_query($this->conn,$query);
    $rowcount = mysqli_num_rows($result);
    return $rowcount;   
}

?>

【问题讨论】:

  • 这里有类方法,但不在一个类中——__construct 方法用于实例化一个类,其中$this 指的是类或自身。
  • 您可能想学习有关课程的教程

标签: php


【解决方案1】:

您需要了解 PHP 中的类。我修改了您的代码作为示例

class MyQuery{
    function __construct() {
        $this->conn = $this->connectDB();
    }
    
    function connectDB() {
        $conn = mysqli_connect($this->host,$this->user,$this->password,$this->database);
        return $conn;
    }
    
    function runQuery($query) {
        $result = mysqli_query($this->conn,$query);
        $resultset = [];
        while($row=mysqli_fetch_assoc($result)) {
            $resultset[] = $row;
        }       
        if(!empty($resultset))
            return $resultset;
    }
    
    function numRows($query) {
        $result  = mysqli_query($this->conn,$query);
        $rowcount = mysqli_num_rows($result);
        return $rowcount;   
    }
}

$myQuery = new MyQuery();
$myQuery->runQuery("select * from ....");

这里是php class document

【讨论】:

    猜你喜欢
    • 2012-09-25
    • 2010-12-11
    • 1970-01-01
    • 2011-01-21
    • 2017-03-29
    • 1970-01-01
    相关资源
    最近更新 更多