Ir ao conteúdo
  • Cadastre-se

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


Posts recomendados

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 

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@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

Link para o comentário
Compartilhar em outros sites

  • Moderador

@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).

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@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. 

Link para o comentário
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
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...