Vadio 13 Denunciar post Postado Agosto 2, 2012 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(); } } Compartilhar este post Link para o post Compartilhar em outros sites
Vadio 13 Denunciar post Postado Agosto 2, 2012 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? Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Agosto 2, 2012 $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. Compartilhar este post Link para o post Compartilhar em outros sites
Vinicius Rangel 208 Denunciar post Postado Agosto 2, 2012 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 Compartilhar este post Link para o post Compartilhar em outros sites
Vadio 13 Denunciar post Postado Agosto 3, 2012 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; } Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Agosto 3, 2012 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. Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Agosto 3, 2012 Acho que você está trocando as bolas. Seu controller faz o papel de model e sua view faz o papel de controller... Compartilhar este post Link para o post Compartilhar em outros sites
Vadio 13 Denunciar post Postado Agosto 3, 2012 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 Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Agosto 4, 2012 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... Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Agosto 4, 2012 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: Compartilhar este post Link para o post Compartilhar em outros sites