Ir para conteúdo
Fórum Script Brasil
  • 0

Erro na criação de tabelas - sql


fernando_ott

Pergunta

Olá pessoal.

O seguinte erro está aparecendo quando tento criar uma tabela.

Se alguém já passou por isso, como resolvo?

Fatal error: Call to a member function cria_tabela() on a non-object in C:\wamp\www\teste\criatabela.php on line 79

index.php

//já conectado e selecionado o db

$c = new cria_db_tabela("localhost","root","","nome_bd");
$c->conecta_db();
$c->seleciona_db();
$c->cria_tabela($nometab,$arr,$tam); //essa é a linha 79

// $arr é um array que passa as informações da tabela criada, sendo $tam o numero de novos campos a serem adicionados
classe cria_db_tabela
public function cria_tabela($nome_tab,$tab,$tam)
    {

        $this->tabname = $nome_tab; // tabname é protected.
        $sql = 'CREATE TABLE ' . $this->tabname . '(';
        for ($i = 0; $i < $tam; $i++ )
            $sql .= " /'" . $tab[$i]['field'] . "/' " .  $tab[$i]['type'] . $tab[$i]['null'] . $tab[$i]['key'] . $tab[$i]['default'] . $tab[$i]['extra'];
        $sql .= ' )';
            
        $res=mysql_query($sql,$this->db);

        if (!$res){
            echo "Houve um problema. Notifique isto para nosso email.";
        }    
        else
            echo "Tabela criado com sucesso!";
    }

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Ola Beraldo.

Creio que esta correto, pois se não o

conecta_db() e seleciona_db() não funcionariam corretamente, e estão funcionando perfeitamente...

só para esclarecer os contructs...

class database {
    
    protected $server;
    protected $userpass;
    protected $username;
    protected $dbname;
    protected $db;
    protected $tabname;
    
    public $bd;
    
    function __construct($servidor,$name,$pass,$nome_bd,$nome_tab) 
    {
        $this->server = $servidor;
        $this->userpass = $pass;
        $this->username = $name;
        $this->dbname = $nome_bd;
        $this->tabname = $nome_tab;
    }
};


class cria_db_tabela extends database{
    
    protected $sql;
    protected $nome_tab;
    private $res;
    
    function __construct($servidor,$name,$pass,$nome_bd,$nome_tab) {
        parent::__construct($servidor,$name,$pass,$nome_bd,$nome_tab);
        $this->conecta_db(); //funcao da classe database
    }

Link para o comentário
Compartilhar em outros sites

  • 0
public function conecta_db()
    {
        if (empty($db)){
            $this->db = mysql_connect($this->server,$this->username,$this->userpass); 
            if (!$this->db){ echo 'Erro ao conectar DB ';  }            
            else echo 'Conectado sucesso!<br>';                
        }
    }
    
    public function seleciona_db()
    {
        $bd = mysql_select_db($this->dbname,$this->db);
        if (!$bd){ echo 'Erro ao selecionar DB '; exit; }
        else echo 'Selecionado com sucesso!<br>';    
    }

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...