找不到致命错误类

时间:2014-08-11 01:30:15

标签: php class require

晚安。

请原谅我的英语,我来自哥斯达黎加......

我正在使用PHP POO,我遇到了问题。

错误是下一个:

  

致命错误:Class' mysql'在第15行的/home/casa/public_html/guaria/clases/verificaSesion.php中找不到

所有我的.php文件都在" clases"文件夹中。

conexion.php

<?php
/**
* Clase de MySQL
*/
class mysql
{
    private $con;
    private $res;
    private $reg;
    public function conecta()
    {
        $con = mysqli_connect("localhost","root","casa","trabajo1");
        if (!$con) {
            echo "Error al conectar a base de datos".mysqli_error();
        }
        mysqli_query($con, "SET NAMES'utf8'");
        $this->con = $con;
    }
    public function consulta($sql)
    {
        $res = mysqli_query($this->con,$sql);
        $this->res = $res;
        return;
    }
    public function devuelve()
    {
        $reg = mysqli_fetch_assoc($this->res);
        return $reg;
    }
    public function desconecta()
    {
        mysqli_close();
    }
}
require_once 'acciones.php';
?>

这是我的verificaSesion.php文件:

<?php
require_once 'conexion.php';

/**
* Clase de Verificación de Sesión
*/
class verificaSesion
{
    public $mysql;
    public $usuario;
    public $password;
    public $direccion;
    function __construct($direccion)
    {
        $this->mysql = new mysql();
        $this->mysql->conecta();
        $this->usuario = $_COOKIE["usuario"];
        $this->password = $_COOKIE["password"];
        $this->direccion = $direccion;
    }
    public function verifica()
    {
        $res = $this->mysql->consulta("select count(*) as total from usuarios where usuario='".$this->usuario."' and password='".$this->password."'");
        $reg = $this->mysql->devuelve();
        $tot = $reg["total"];
        if ($tot == 1) {
            return 1;
        } else {
            return 2;
        }
    }
    public function obtiene()
    {
        $res = $this->mysql->consulta("select * from usuarios where usuario='".$this->usuario."'");
        $reg = $this->mysql->devuelve();
        return $reg;
    }
    public function redirecciona()
    {
        header("Location: ".$this->direccion);
    }
    public function ejecuta()
    {
        if ($this->verifica() == 1) {
            return $this->obtiene();
        } else {
            $this->redirecciona();
        }
    }
}
?>

两个文件都在同一个文件夹中,所以我不明白这个问题...

谢谢

2 个答案:

答案 0 :(得分:2)

原因是因为mysql是mysql连接库的保留关键字。

如何修复它:

只需使用其他名称

答案 1 :(得分:0)

好的,我终于让我的代码工作了。顺便说一句,我可以创建一个名为mysql的类,因为mysql函数不是像mysqli这样的类。 如果它无法创建一个名为mysql的类,它将显示如下错误:

  

致命错误:无法重新声明类mysql

但它没有..

解决方案是将verificaSesion.php中的require_once更改为:

require_once 'clases/conexion.php';

我真的不明白为什么,因为两个文件verificaSesion和conexion都在同一个文件夹中,但它有效...... 无论如何,谢谢你的帮助!