Erro ao executar $stm->execute() com PDO PostgreSQL

07/10/2015

0

Olá, o banco de dados conecta normalmente e até a parte de $stm = $this->conexao->prepare($sql); executa normalmente, porém quando faço $stm->execute() da um erro, a página desaparece.

arquivo conexao.class.pbp:
<?php
class AcessarBase{
	public $erroConexao = "";
	
	public function statusConexao($host, $porta, $usuario, $senha, $dbname){
		try{
			$pdo = new PDO("pgsql:host=$host port=$porta dbname=$dbname user=$usuario password=$senha");
			$pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO:: ERRMODE_EXCEPTION);
			return $pdo;
		} catch(\PDOException $e){
			$this->erroConexao = "Nãoo foi possível fazer a conexãoo com o banco de dados. Erro codigo: ".$e -> getCode()." Mesagem: ".$e -> getMessage();
			return false;
		}
	}
}


Arquivo ClienteDAL.php:
<?php	
	class ClienteDAO{

		public  $conexao = null;
		public  $erro     = "";
		
		function setCliente($nome, $email, $telefone, $senha){
			$pdo = new AcessarBase();
			$this->conexao = $pdo->statusConexao(HOST, PORTA, USUARIO, SENHA, BASE);
			
			//verificando a conexão com o banco de dados
			if ($this->conexao){
				//verificandop se usuário já está cadastrado
				$sql = "SELECT email WHERE Usuario WHERE email='".$email."'";
				$stmt = $this->conexao->prepare($sql);
				$stmt ->execute();
				//$resultado = $stmt -> fetch(PDO::FETCH_OBJ);
				/*
				if ($resultado){
					$this->erro = "Já existe uma conta com esse email!";
					return false;
				} else {
					$this->erro = "Não existe usuário";
					//$sql = "SELECT CadastrarUsuario($nome,$email,$telefone,$senha)";
					//$stmt = $this->conexao->query($sql);					
					$this->erro = "pode cadastrar";
					return false;
				}*/
			} else {				
				$this->erro = $pdo->erroConexao;
				return false;
			}	
		}
		
	}


Qual é o erro de logica?
Adenes Junior

Adenes Junior

Responder

Posts

07/10/2015

Jothaz

Para começar é preciso escrever corretamente a expressão SQL.

Disso:

$sql = "SELECT email WHERE Usuario WHERE email='".$email."'";


Para algo assim:

$sql = "SELECT email  FROM  Usuario  WHERE email='".$email.'";
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar