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:  
Clay1995

PHP Warning: mysqli_select_db() expects exactly 2 parameters, 1 given in

Recommended Posts

Galera estou com um erro quando tento injetar no meu banco de dados aqui esta meu codigo 

<DOCTYPE html>

<html>

<head>
<title>Cadastrando</title>

</head>

<body>

<?php
$host = "localhost";
$user = "clay";
$pass = "ccaldasdan10";
$banco = "cadastro";
$conexao = mysqli_connect($host, $user, $pass) or die (mysql_error());
mysqli_select_db($banco) or die (mysql_error());

?>

<?php
$nome=$_POST['nome'];
$login=$_POST['login'];
$email=$_POST['email'];
$senha=$_POST['senha'];
$sql = mysqli_query("INSERT INTO usuarios(nome, login, email, senha)VALUES('$nome',$login',$email',$senha')");


?>

</body>

</html>

o erro que aparece é o seguinte 

Warning: mysqli_select_db() expects exactly 2 parameters, 1 given in C:\wamp64\www\cadastro\cadastrando.php on line 18

se alguem puder me esclarecer o erro eu agradeço 

 

Editado por DiF
Inserir o código com o botão CODE <>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Clay1995  O PHP, não usa mais a função mysqli_select_db().

 Tornou-se obsoleto.

 

Troque sua conexão de:

 

$host = "localhost";
$user = "clay";
$pass = "ccaldasdan10";
$banco = "cadastro";
$conexao = mysqli_connect($host, $user, $pass) or die (mysql_error());
mysqli_select_db($banco) or die (mysql_error());

Para:

$conexao = mysqli_connect("localhost", "clay", "ccaldasdan10", "cadastro"); 

Sim, apenas uma linha. Pois a sintaxe é:

mysqli_connect("localhost", "usuario", "senha", "nome do banco de dados"); 

http://php.net/manual/pt_BR/function.mysqli-connect.php

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 minutos atrás, DiF disse:

$conexao = mysqli_connect("localhost", "clay", "ccaldasdan10", "cadastro");

fiz o que disse mais o erro persiste o mesmo erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Clay1995 Não tem como persistir o erro. Se fizer como disse acima, você vai eliminar a função que está dando o erro.

Então se há erro, é outro. 

Se quiser pode postar print do problema.

 

Em tempo: Não recomendo o xampp ou o Wamp64.     Use o EasyPHP DEV server 17(versão mais recente).

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro aparece estar na linha 18 maninho dizendo que espera mais de 1 parâmetro mais eu não consigo saber qual parâmetro é este

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Clay1995 Aff... não precisa saber que parâmetro é esse... basta colocar aqui o erro de novo, seja por print ou por texto.

 

Mas sem saber que erro é, não posso ajudar.  SE e somente SE você usou a forma  de uma linha do mysqli que eu mencionei, o erro é obrigado a não ser o mesmo. Pois eliminamos a função que estava dando erro.. portanto o erro é em outro lugar do seu código.

Mas para saber, preciso ver seu código de novo de como está agora E de preferência  postar uma imagem do problema para que entendimento seja mais eficiente.

 

Sem isso, não há como ajudar. 

 

Seria a mesma coisa que você se sentir mal, ir no médico, ele perguntar o que você sente e você dizer:  não sei, mas to passando mal. Rsrs

 

 

PS: por descargo de consciência,  no navegador tente zerar o cache com CTRL + F5, algumas vezes. 

Editado por DiF

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve informar a conexão na função mysqli_select_db.

mysqli_select_db($conexao, $banco) or die (mysqli_error($conexao));

 

Outro detalhe é que no tratamento de erros você está está misturando a biblioteca mysqli com a mysql.

 

Como você está utilizando a biblioteca mysqli a linha:

$conexao = mysqli_connect($host, $user, $pass) or die (mysql_error());

Deve ser alterada para:

$conexao = mysqli_connect($host, $user, $pass) or die (mysqli_connect_error());

e a linha do erro também deve ter seu tratamento de erros alterado de:

mysqli_select_db($banco) or die (mysql_error());

Para:

mysqli_select_db($conexao, $banco) or die (mysqli_error($conexao));

 

Também encontrei erros na sua consulta no banco as aspas não estão corretas o código a seguir:

$sql = mysqli_query("INSERT INTO usuarios(nome, login, email, senha)VALUES('$nome',$login',$email',$senha')");

Deve ser alterado para:

$sql = mysqli_query("INSERT INTO usuarios(nome, login, email, senha)VALUES('$nome','$login','$email','$senha')");

 

Além disso você também deve se proteger de vulnerabilidades como sql injection alterando o código a seguir de:

$nome=$_POST['nome'];
$login=$_POST['login'];
$email=$_POST['email'];
$senha=$_POST['senha'];

Para:

$nome=mysqli_escape_string($conexao, $_POST['nome']);
$login=mysqli_escape_string($conexao, $_POST['login']);
$email=mysqli_escape_string($conexao, $_POST['email']);
$senha=mysqli_escape_string($conexao, $_POST['senha']);

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@HwapX  muito obrigado isso realmente me ajudou agradeço de mais

  • 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

×