您好我刚读完一本关于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
我在这里做错了什么,如何修理?
答案 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的类的模块。把你的班级命名为别的。