不能重新宣布上课Mysqli

时间:2012-10-24 20:21:39

标签: php

您好我刚读完一本关于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

我在这里做错了什么,如何修理?

3 个答案:

答案 0 :(得分: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());
    }
}

答案 1 :(得分:1)

Mysqli已经存在于php中,因为php不区分大小写mysqli这个词是self保留的,不能用于任何拼写中。

你将能够创建自己的扩展mysqli的类,所以它基本上会继承现有mysqli类的所有属性和方法

class MyMySQLi extends MySQLi 
{
    private $conn;

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

答案 2 :(得分:0)

您的PHP环境包括mysqli,它是一个提供名为mysqli的类的模块。把你的班级命名为别的。