I can not access class data already instantiated

0

Hello, I am developing a panel and I am developing the installation system and in the part of creating the DB, I am not able to access the class's installed variable.

Error appearing on screen:

  

Fatal error: Can not redeclare class OP_Config

Code:

<?php 
include('../config/config.php');

// Inclui o arquivo de conexão com o código descrito anteriormente
include('../sql/class-connection.php');

// Nosso novo banco de dados
$bd = $_POST['db_name'];

$op_config = new OP_Config();
$bd_user = $op_config->datesDb->config['db_user'];

// Cria o banco de dados e da permissão para nosso usuário no mesmo
$db = new DB();
$verifica = $db->getConnection->conn->exec(
    "CREATE DATABASE IF NOT EXISTS '$bd';
    GRANT ALL ON '$bd'.* TO '$bd_user'@'localhost';
    FLUSH PRIVILEGES;"
);

// Verificamos se a base de dados foi criada com sucesso
if ( $verifica ) {
    echo 'Banco de dados criado com sucesso!';
} else {
    echo 'Falha ao criar banco de dados!';
}
?>
    
asked by anonymous 05.06.2015 / 20:04

3 answers

1

Use include_once , like this:

<?php 
include_once('../config/config.php');

// Inclui o arquivo de conexão com o código descrito anteriormente
include_once('../sql/class-connection.php');

// Nosso novo banco de dados
$bd = $_POST['db_name'];

$op_config = new OP_Config();
$bd_user = $op_config->datesDb->config['db_user'];

// Cria o banco de dados e da permissão para nosso usuário no mesmo
$db = new DB();
$verifica = $db->getConnection->conn->exec(
    "CREATE DATABASE IF NOT EXISTS '$bd';
    GRANT ALL ON '$bd'.* TO '$bd_user'@'localhost';
    FLUSH PRIVILEGES;"
);

// Verificamos se a base de dados foi criada com sucesso
if ( $verifica ) {
    echo 'Banco de dados criado com sucesso!';
} else {
    echo 'Falha ao criar banco de dados!';
}
?>
    
11.06.2015 / 06:10
0

This error Cannot redeclare class means that you are declaring the class more than once, it checks whether your 2 includes is not setting the OP_Config class more than once.

    
05.06.2015 / 20:08
0

Make sure you are not including 2 times the same class. It may be being included inside some other include . For example:

  

config.php

include ('OP_config.php');

class Config 
{
...
}
  

class-connection.php

include('OP_config.php');

class ClassConnection 
{
...
}

It may be that within .php files you are invoking the same class two or more times.

    
08.06.2015 / 21:49