2012-10-24 55 views
0

嗨,我剛讀完一本關於PHP的初學者書,我開始創建自己的登錄。我沒有得到很遠,我得到一個錯誤,我似乎無法修復。不能重新聲明類Mysqli

我有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 

我在做什麼錯在這裏,我該如何修復呢?

+0

的所有屬性和方法,請告訴我該錯誤消息的問題? .... – KingCrunch

回答

3

該錯誤正是錯誤狀態。

Mysqli是一個現有的類,它是一個非常常見的php共享庫mysqli的一部分。你不能重新聲明它。

更改您的類名爲MyMysqli或其他東西。

class MyMysqli{ 

    private $conn; 

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

您的PHP環境包含mysqli,它是一個模塊,它提供了一個名爲mysqli的類。只要命名你的班級別的東西。

1

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()); 
    } 
}