簡體   English   中英

MySQL 查詢句柄未定義

[英]MySQL query handle undefined

我有以下代碼,它工作正常。 查詢執行完畢,一切正常。 但是我從 PHP 收到一個錯誤: Notice: Undefined variable: handle in..../class.database.php on line 43

我不知道為什么會這樣。

(第 43 行指向下面標記的代碼行)

function __construct($hostname, $user, $pass, $databasename)
{
    $this->$handle = mysqli_connect($hostname, $user, $pass);
    if(!$this->$handle)
    {
        $this->seterror();
        return false;
    }
    $handle = mysqli_select_db($this->$handle, $databasename);
    if(!$handle)
    {
        $this->seterror();
        return false;
    }
    return true;
}

function query($text)
{
    $result = mysqli_query($this->$handle,$text); // LINE 43
    if(!$result)
    {
        $this->seterror();
        $this->geterror(); // temp
        return false;
    }
    return $result;
}

對 class 屬性使用美元符號是不必要的,您可以將$this->$handle更改為$this->handle

function __construct($hostname, $user, $pass, $databasename)
{
    $this->handle = mysqli_connect($hostname, $user, $pass);
    if(!$this->handle)
    {
        $this->seterror();
        return false;
    }
    $handle = mysqli_select_db($this->handle, $databasename);
    if(!$handle)
    {
        $this->seterror();
        return false;
    }
    return true;
}

function query($text)
{
    $result = mysqli_query($this->handle,$text); // LINE 43
    if(!$result)
    {
        $this->seterror();
        $this->geterror(); // temp
        return false;
    }
    return $result;
}

句柄應該是使用“public”、“private”或“protected”關鍵字聲明的 class 的屬性。 如果您使用的是最新版本的 PHP,則不應使用“var”來專門聲明屬性。

就像之前說的那樣。 如果您正確聲明財產,您將不得不更改

$this->$handle 到 $this->handle

讓它工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM