0

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

我在这里做错了什么,我该如何修复它?

4

3 回答 3

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());
    }
}
于 2012-10-24T20:24:34.873 回答
2

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());
    }
}
于 2012-10-24T20:29:55.443 回答
0

您的 PHP 环境包括 mysqli,它是一个模块,可提供名为 mysqli 的类。只需将您的班级命名为其他名称。

于 2012-10-24T20:25:55.127 回答