Jump to content
Erica

Erro: mysqli_select_db () espera exatamente 2 parâmetros, 1 dado

Recommended Posts

Erica

Gostaria de uma ajuda nesse trabalho 

Não to conseguindo descobrir o erro.

Linha 14  - mysqli_select_db () espera exatamente 2 parâmetros, 1 dado

<html>

<head>
<title> Cadastrando </title>
</heady>

<body>
<?php
$host = "localhost";
$user = "root";
$pass = "";
$banco = "cadastro";
$conexao = mysqli_connect($host, $user, $pass) or die(mysqli_error());
mysqli_select_db($banco) or die(mysqli_error());
?>
<?php
$email=$_POST['email'];
$nome=$_POST['nome'];
$senha=$_POST['senha'];
$sexo=$_POST['sexo'];
$data_de_nascimento=$_POST['data de nascimento'];
$materia=$_POST['materia'];
$sql = ("INSERT INTO usuarios(email, nome, senha, sexo, data de nascimento, materia) 
VALUES('$email', '$nome', '$senha', '$sexo', '$data de nascimento', '$materia')");
echo"<center><h1>Cadastro Efetuado com Sucesso!</h1></center>";
?>
</body>
</html>

 

Share this post


Link to post
Share on other sites
Diogo Eira

Troque:

mysqli_select_db($banco)
Por:
mysqli_select_db($conexao,$banco)
Edited by Diogo Eira

Share this post


Link to post
Share on other sites
Erica

Agora está dando erro nas linhas

Notice: Undefined index: sexo in C:\xampp\htdocs\sistemalogin\cadastrando.php on line 18

Notice: Undefined index: data de nascimento in C:\xampp\htdocs\sistemalogin\cadastrando.php on line 19

Notice: Undefined variable: data_nacimento in C:\xampp\htdocs\sistemalogin\cadastrando.php on line 23

Share this post


Link to post
Share on other sites
Diogo Eira
1 hora atrás, Erica disse:

Agora está dando erro nas linhas

Notice: Undefined index: sexo in C:\xampp\htdocs\sistemalogin\cadastrando.php on line 18

Notice: Undefined index: data de nascimento in C:\xampp\htdocs\sistemalogin\cadastrando.php on line 19

Notice: Undefined variable: data_nacimento in C:\xampp\htdocs\sistemalogin\cadastrando.php on line 23

isso não são erros e sim "avisos", que avisa quando uma variável não foi recebida através do POST.

Mude:

$sexo=$_POST['sexo']; 
$data_de_nascimento=$_POST['data de nascimento'];

Para:

$sexo=@$_POST['sexo'];
$data_de_nascimento=@$_POST['data_de_nascimento'];

Antes de cada variável POST adicionei um @ para ignorar as "Notice" referentes à mesma.

Repare também não pode utilizar variáveis PHP com espaços:

$sql = ("INSERT INTO usuarios(email, nome, senha, sexo, data de nascimento, materia) 
VALUES('$email', '$nome', '$senha', '$sexo', '$data de nascimento', '$materia')");

Para:

$sql = ("INSERT INTO usuarios(email, nome, senha, sexo, data de nascimento, materia) 
VALUES('$email', '$nome', '$senha', '$sexo', '$data_de_nascimento', '$materia')");

 

Edited by Diogo Eira

Share this post


Link to post
Share on other sites
Diogo Eira

Sugeria também modificar a ligação à BD para PDO:

  $user = "root";
  $pass = "";
  $connect = new PDO('mysql:host=127.0.0.1;dbname=cadastro', $user, $pass);

  $email=$_POST['email'];
  $nome=$_POST['nome'];
  $senha=$_POST['senha'];
  $sexo=$_POST['sexo'];
  $data_de_nascimento=$_POST['data_de_nascimento'];
  $materia=$_POST['materia'];

  try {
      $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $sql = "INSERT INTO usuarios(email, nome, senha, sexo, data de nascimento, materia) VALUES('$email', '$nome', '$senha', '$sexo', '$data_de_nascimento', '$materia');";
      $connect->exec($sql);
  }
  catch(PDOException $e)
  {
      $errosql = 1;
      echo $sql . "<br>" . $e->getMessage();
  }

  if($errosql == 1){
  	echo"<center><h1>Erro ao efetuar o seu cadastro!</h1></center>";
  }else{
  	echo"<center><h1>Cadastro efetuado com sucesso!</h1></center>";
  }

 

 

Share this post


Link to post
Share on other sites
HappyHippyHippo
26 minutes ago, Diogo Eira said:

isso não são erros e sim "avisos", que avisa quando uma variável não foi recebida através do POST.

Mude:


$sexo=$_POST['sexo']; 
$data_de_nascimento=$_POST['data de nascimento'];

Para:


$sexo=@$_POST['sexo'];
$data_de_nascimento=@$_POST['data_de_nascimento'];

Antes de cada variável POST adicionei um @ para ignorar as "Notice" referentes à mesma.

Repare também não pode utilizar variáveis PHP com espaços:


$sql = ("INSERT INTO usuarios(email, nome, senha, sexo, data de nascimento, materia) 
VALUES('$email', '$nome', '$senha', '$sexo', '$data de nascimento', '$materia')");

Para:


$sql = ("INSERT INTO usuarios(email, nome, senha, sexo, data de nascimento, materia) 
VALUES('$email', '$nome', '$senha', '$sexo', '$data_de_nascimento', '$materia')");

 

ainda tenho que ver se o phpmd ou o phpcs apanha esse tipo de brincadeiras ...

esconder erros/warnings/avisos é uma condição imediata para eu invalidar um PullRequest.

 

o caso indicado deverá ser processado devidamente através do null-coalescing operator:

$dados = $_POST['field'] ?: 'dados caso não estiver definido';

 

  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.