Publicidade

Entre para seguir isso  
Seguidores 0
Vadio

PDO statement

bom galera to tentando aprende a usa o pdo

mas não consegui usar o statement se alguém puder me auxiliar

 

aí vai

controller

public function login($email,$senha){
	$sql = "SELECT * FROM Usuario WHERE Usuario.email= '$email' AND Usuario.senha= MD5('$senha');";
	$Mypdo = new myPDO();
	$result = $Mypdo->query($sql);
	return $result;

}

view

public function login(){
	$email = $_POST['email'];
	$senha = $_POST['senha'];

	try{
		if(!$this->model->setEmail($email)) throw new myErrorException('E-mail inválido');
		if(!$this->model->setSenha($senha)) throw new myErrorException('Senha inválida');

		$result = $this->controller->login($this->model->getEmail(), $this->model->getSenha());	
		$Usuario = $result->fetchAll(PDO::FETCH_CLASS,'modelUsuario');

		if(empty($Usuario)) throw new myErrorException('E-mail e/ou senha inválidos');
		if(isset($Usuario) && sizeof($Usuario) == 1) $this->controller->setSession($Usuario);

		echo 'Sucesso';
	}catch (myErrorException $e){
		echo $e->getMessage();
	}
}

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui usar ela assim mas o bindParam não consegui ainda...

$sql = 'INSERT INTO Usuario (id,permissao_id,email,senha) VALUES ("",?,?,md5(?));';

	$Mypdo = new myPDO();	
	$stmt = $Mypdo->prepare($sql);
	$result = $stmt->execute(array($permissao_id,$email,$senha)) or die('errorCode:'.$Mypdo->errorCode().' - errorInfo:'.var_dump($Mypdo->errorInfo()));

gostaria de usar o bindparam na instrução SELECT do primeiro post, alguém ae sabe me dizer como fazer?

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sql = "
   SELECT 
       * 
   FROM 
       Usuario 
   WHERE 
       Usuario.email = :email 
       AND Usuario.senha= MD5(:senha);";
$Mypdo = new myPDO();
$statement = $Mypdo->prepare($sql);
$statement->bindParam(':email' , $email);
$statement->bindParam(':senha' , $senha);
$result = $statement->execute();
return $result;

 

O mais importante, é que entenda o que foi feito. Pergunte sobre suas dúvidas, e não apenas como se faz.

1

Compartilhar este post


Link para o post
Compartilhar em outros sites

perfeito Gabriel, o nosso objetivo aqui é ajudar a entender as coisas e não simplesmente como se fazer.

 

por isso procure entender o por que tem que usar o bindParam e o que ele faz com seus dados e se pergunte até o por que de usar o PDO

1

Compartilhar este post


Link para o post
Compartilhar em outros sites

continuo não conseguindo fazer

oq eu to fzd errado??

 


public function update($Pessoa_model){
	$sql = 'UPDATE Pessoa SET';
	$sql.= '	Pessoa.primeiro_nome = :primeiro_nome,';
	$sql.= '	Pessoa.ultimo_nome = :ultimo_nome,';
	$sql.= '	Pessoa.nascimento = :nascimento,';
	$sql.= '	Pessoa.cpf = :cpf,';
	$sql.= '	Pessoa.rg = :rg';
	$sql.= ' WHERE Pessoa.id = :id  ;';

	$Mypdo = new MyPDO();
	$stmt = $Mypdo->prepare($sql);
	$stmt->bindParam(':primeiro_nome', $Pessoa_model->getPrimeiro_nome);
	$stmt->bindParam(':ultimo_nome', $Pessoa_model->getUltimo_nome);
	$stmt->bindParam(':nascimento', $Pessoa_model->getNascimento);
	$stmt->bindParam(':cpf', $Pessoa_model->getCpf);
	$stmt->bindParam(':rg', $Pessoa_model->getRg);
	$stmt->bindParam(':id',$_SESSION['usuario'][0]->id);

	$result = $stmt->execute();

	if($result) return true;
	else return false;
}

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Logo depois de instanciar a PDO, adicione:

 

$Mypdo -> setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

Isso vai habilitar o disparo das PDOException's que, por padrão, não são disparadas, ocultando os erros.

 

Assim você vai ver o que é o problema e, se não resolver sozinho, terá algo para informar-nos.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que você está trocando as bolas. Seu controller faz o papel de model e sua view faz o papel de controller...

1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que você está trocando as bolas. Seu controller faz o papel de model e sua view faz o papel de controller...

 

eu sou principiante ainda

 

parti do seguinte principio modelo é o meu modelo de dados

meu controler fará a interação com o banco e

minha view irá mostrar minhas mensagens

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
meu controler fará a interação com o banco e

Não, quem faz interação com o banco de dados é o model.

O controller lida com as requisições, $_GET, $_POST, etc., decide qual view mostrar com base na requisição, etc...

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que quem tá começando tem certa dificuldade em enxergar que a Model meio que se divide em duas partes diferentes, a que lida diretamente com o BD e a que lida com a Entidade.

 

Não tenho certeza, porém, quanto aos nomes. :closedeyes:

0

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

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
Entre para seguir isso  
Seguidores 0

  • Próximos Eventos