簡體   English   中英

無法重新聲明類Mysqli

[英]Cannot redeclare class Mysqli

嗨,我剛讀完一本關於PHP的新書,就開始創建自己的登錄名。我走得還很遠,但遇到了我無法解決的錯誤。

我有3個檔案

    index.php

    session_start();
    require 'DB_ACCES/connect.php';

    if(isset($_POST['submit'])){
        $conn = new Mysqli();
    }

    constants.php

    define('DB_HOST', 'localhost');
    define('DB_USER' , 'root');
    define('DB_PWD' , '');

    connect.php

    require '../includes/constants.php';

    class Mysqli{

        private $conn;

        function __construct() {
            $this->conn = new mysqli(DB_HOST , DB_USER , DB_PWD) or die(mysqli_error());
        }
    }

當我運行index.php時,出現以下錯誤:

Fatal error: Cannot redeclare class Mysqli in D:\Program Files\xampp\htdocs\MyWork\Blog\DB_ACCES\connect.php on line 4

我在這里做錯什么,該如何修復?

該錯誤正是錯誤所指出的。

Mysqli是現有類,是非常常見的php共享庫mysqli 您無法重新聲明。

將您的類名更改為MyMysqli或其他名稱。

class MyMysqli{

    private $conn;

    function __construct() {
        $this->conn = new mysqli(DB_HOST , DB_USER , DB_PWD) or die(mysqli_error());
    }
}

Mysqli已經存在於php中,因為php不區分大小寫,mysqli這個詞本身是保留字,因此無法在任何拼寫中使用。

您將能夠創建自己的擴展mysqli的類,因此它將基本上繼承現有mysqli類的所有屬性和方法。

class MyMySQLi extends MySQLi 
{
    private $conn;

    function __construct() {
        $this->conn = parent::__construct(DB_HOST , DB_USER , DB_PWD) or die(mysqli_error());
    }
}

您的PHP環境包括mysqli,這是一個使名為mysqli的類可用的模塊。 只是給班級命名。

暫無
暫無

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

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