Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Agamoto

Erro no php - sem acesso ao banco de dados

Recommended Posts

Estou com um problema que parece simples 
mas que empacou de vez um formulário de cadastro que estou tentando usar.
Não encontra o banco de dados, já tentei muitas permissões tanto 
no windows quanto no próprio mysql e nada...

 

código em php:

<html>
    <head></head>
    <title>cadastrando</title>
    <body>
        
        <?php
        $con = mysqli_connect("127.0.0.1", "root", "vertrigo") or die("Não foi possível conectar com o servidor de dados!");
        mysql_select_db ( "cadastro" , $con  ) or die("Banco de dados não localizado!");
        ?>
        
        <?php
            if($_GET['go'] == 'cadastrar'){
            $nome = $_POST['nome'];
            $email = $_POST['email'];
            $user = $_POST['usuario'];
            $pwd = $_POST['senha'];
        
            if(empty($nome)){
            echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";
            }elseif(empty($email)){
            echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";
            }elseif(empty($user)){
            echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";
            }elseif(empty($pwd)){
            echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";
            }else{
                $query1 = mysql_num_rows(mysql_query("SELECT * FROM usuario where usuario = '$user'"));
                if($query1 == 1){
                    echo "<script>alert('Usuário já existe.'); history.back();</script>";
                }else{
                    mysql_query("insert into usuario(nome,email,usuario,senha) values ('$nome','$email','$user','$pwd')");
                    echo "<script>alert('Usuário cadastrado com sucesso.'); </script>";
                    echo "<meta http-equiv='refresh' content='0, url=cadastro.php'>";
                }
            }
        }
            ?>
    </body>
</html>

 

 

Mensagem de Erro:

(!) Atenção: mysql_select_db () espera que o parâmetro 2 seja recurso, objeto dado em C: \ Users \ Aloizio \ Serv \ www \ carros \ cadastrar.php on line 10

Pilha de chamadas

#Tempo                               Memória               Função                          Localização

10,0020                               246480                {a Principal}( )                ... \ cadastrar.php : 0

20,0130                               255264                Mysql_select_db ()         ... \ cadastrar.php : 10

Banco de dados não localizado!

Editado por DiF
Botão CODE <>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se está conectando com o mysqli, deveria selecionar o banco de dados com a mysqli também, não??

 

mysqli_select_db($con  , "cadastro");

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Agamoto Olá, seja bem vindo em nosso Clube do Hardware.

 

O seu problema é que você faz a conexão com o banco de dados usando a extensão MySQLi, seleciona, o banco pela extensão antiga mysql e as funções também.

 

Troque todas as funções para as do MySQLi  que vai funcionar.

 

Para conectar certo use a seguinte sintaxe:

//-------------------  host        usuario   senha      nome do banco de dados                           
$con = mysqli_connect("127.0.0.1", "root", "vertrigo", "cadastro");

Já o resto do código troque para mysqli_num_rows() e mysqli_query.

 

Faça desta maneira:

<?php
        $con = mysqli_connect("127.0.0.1", "root", "vertrigo","cadastro"); 
     
        
      
            if($_GET['go'] == 'cadastrar'):
               $nome = $_POST['nome'];
               $email = $_POST['email'];
               $user = $_POST['usuario'];
               $pwd = $_POST['senha'];
        
               if(empty($nome) OR empty($email) OR empty($user) OR empty($pwd) ):
                   echo "<script>alert('Preencha todos os campos para se cadastrar.'); history.back();</script>";
                  exit;
               endif;
              
                   $consulta = mysqli_query($con ,"SELECT * FROM usuario where usuario = '$user'")); 
                   $query1 = mysqli_num_rows($consulta);
                
                   if($query1 == 1):
                       echo "<script>alert('Usuário já existe.'); history.back();</script>";
                   else:
                       mysqli_query($con ,"insert into usuario(nome,email,usuario,senha) values ('$nome','$email','$user','$pwd')");
                       echo "<script>alert('Usuário cadastrado com sucesso.'); </script>";
                      echo "<meta http-equiv='refresh' content='0, url=cadastro.php'>";
                   endif;
          endif;

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Caique deu certo!! 

    também tinha tentado isso antes mas sem efeito, mas a sua dica de trocar de posição a variável com o banco de dados é que foi o pulo do gato. 

    Obrigado

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Agamoto Só para você ter conhecimento,   o mysqli_select_db($con  , "cadastro");  é obsoleto.

     

    A sintaxe correta para o mysqli  é:   mysqli_connect("host", "usuario", "senha", "nome do banco de dados")

     

    Veja mais sobre isso no manual do PHP  http://php.net/manual/pt_BR/function.mysqli-connect.php

    Editado por DiF

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Valeu DiF

    Vou usar as suas dicas também, foram valiosas agora tá redondinho.

    muito obrigado

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×