Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Iury Borges

verifica se existe os dados em PDO

Recommended Posts

Gente eu acho um monte de tutorial na net só que e em mysql, em pdo ta osso, o que quero, quero que ele verifica se existe, mais ele só retorna que não existe, alguém pode me explicar por que está fazendo isso?

 

 

 

 

 

 

<?php

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




$veri="SELECT *FORM usuarios WHERE senha = '$senha' AND email='$email'";




if($veri>1)
{
 
 $pdo=new PDO("mysql:host=localhost;dbname=sistema_cadastro_login","root",""); 

try 
{
   $rs = $pdo->query(" SELECT nome, email, senha FROM usuarios WHERE senha = '{$senha}' AND email='{$email}'"); 
   $row = $rs->fetch(PDO::FETCH_OBJ);
   
  $nome=$row->nome . '<br/>';
}


catch( PDOException $Exception ) 
{    
    throw new MyDatabaseException( $Exception->getMessage( ) , (int)$Exception->getCode( ) );
}

session_start();

$_SESSION['nome']=$nome;

header('location:../index.php');
}
else

{
echo "<script>alert('Email ou senha não cadastrados');back.hystory;</script>";	
header('location:../login2.php');

	
}


?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça assim:

 

try{
 $verifica = new $pdo->prepare("SELECT * FROM nome_tabela WHERE nome_campo = :dados ");
 $verifica->bindValue(':dados',$dado_a_comparar,PDO::PARAM_STR);
 $verifica->execute();

 //agora vamos verificar
 if($verifica->rowCount() > 0){
 // se for maior que zero é por que encontrou algo
 }else{
 //ou entao nao encontrou nada
 }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Iniciei uma conexão aqui no localhost só pra te ajudar :yes:

 

 $query = $pdo->prepare('SELECT * FROM usuarios'); $query->execute();  print_r($query->rowCount()); // resultado no meu caso foi 6// você pode fazer assim:if($query->rowCount() > 0){  //executa uma ação quando existe dados}else{  // executa uma ação quando não existe dados}



Opa, duas respostas iguais. Postamos ao mesmo tempo, rsrsrsrsrss



new $pdo->prepare() não funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda so retorna com meu email não existe



Olha a mudança que fiz

 

<?php

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


 $pdo=new PDO("mysql:host=localhost;dbname=sistema_cadastro_login","root",""); 


$veri=$pdo->prepare("SELECT *FORM usuarios");
$veri->execute();
print_r($veri->rowCount());



if(!$veri->rowCount()>0)
{
 

try 
{
   $rs = $pdo->query(" SELECT nome, email, senha FROM usuarios WHERE senha = '{$senha}' AND email='{$email}'"); 
   $row = $rs->fetch(PDO::FETCH_OBJ);
   
  $nome=$row->nome . '<br/>';
}


catch( PDOException $Exception ) 
{    
    throw new MyDatabaseException( $Exception->getMessage( ) , (int)$Exception->getCode( ) );
}

session_start();

$_SESSION['nome']=$nome;

header('location:../index.php');
}
else

{
echo "<script>alert('Email ou senha não cadastrados');back.hystory;</script>";
	
header('location:login2.php');

	
}


?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, observe essa linha:

 

$veri=$pdo->prepare("SELECT *FORM usuarios");

 

select (...) FORM "non ecziste", ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exemplo simples seguindo a mesma lógica de sua dúvida anterior

<?php
 header('Content-Type: text/html; charset=utf-8');
$pdo=new PDO("mysql:host=127.0.0.1;dbname=sistema_cadastro_login","root",""); 
 
 $email=$_POST['email'];
 $senha=$_POST['senha'];

try 
{
   $rs = $pdo->query(" SELECT nome, email, senha FROM usuarios WHERE senha = '{$senha}' AND email='{$email}'"); 
   $row = $rs->fetch(PDO::FETCH_OBJ);
   
   var_dump($row); //testando a saida   
   echo $row->nome . '<br/>'; //Exibe o nome do usuário
   
   //contagem de registros
   if (count($row) > 0) 
   {
       echo "Usuário : {$row->nome} existe em sua base de dados .";
   }
   else
   {
       echo "Usuário não encontrado.";
   }
   
   
   
}
catch( PDOException $Exception ) 
{    
    throw new MyDatabaseException( $Exception->getMessage( ) , (int)$Exception->getCode( ) );
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

surgiu outro problema, quando faço a execução do script, ele so executa 1º opção, quando coloco email e senha que estão no banco ele vai para o index e recupera nome iury, quando digito outro email e senha que não esta no banco ele leva ao index sem recupera nada.

 

 

olha o código:

 

 

//contagem de registros
if (count($row) > 0)
{
header('location:../index.php');
}
else
{
header('location:login2.php');
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.