Ir para conteúdo

POWERED BY:

Arquivado

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

Nerdmonkey

Classe update

Recommended Posts

Forma correta

...

//Estãncia a Registry
$registry = Registry::getInstance();

$options = array(
	PDO::ATTR_PERSISTENT => true,
	PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
	PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);

$this->con = new PDO( $this->dbType.":host=".$this->host.";dbname=".$this->db, $this->user, $this->senha, $options );

//Setando a registry pdo
$registry->set( 'PDO' , $this->con );


...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ignorar, já consegui :D

 

 

Bom dia. Só pra dizer que estou apaixonado por OO rs

 

Como eu faço pra acessar diretamente o valor retornado pelo método processResults( $row, $sql ) ? No exemplo que você mandou Williams ele cria a class Post e já deixa predefinido o valor da tabela, porém essa DAO seria mais dinâmica e única, sem a necessidade de uma para cada tabela.

 

Por exemploi

$get_reg = $dao->getAll( 'tabela', '' );foreach( $get_reg as $fetch_obj )    {            // O que funciona aqui ?     }

 function getAll( $table, $filter ){$sql = $this->conex->prepare( "SELECT * FROM $table WHERE $filter" );$exe = $sql->execute();$row = $sql->rowCount();  return $this->processResults( $row, $sql );} private function processResults( $row, $sql ) {$results = array();if( $row > 0 ) {while( $lin = $sql->fetch( PDO::FETCH_OBJ ) ) {$results[] = $lin;}}return $results;} 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui

 

 

$get = $daoLogin->getAll( 'usuarios', " email = '" . $_SESSION[ 'logado' ] . "' " );foreach( $get as $data ){$email = $data->email;$data_alter_senha = $data->data_alter;}

Por hora conclui o meu sistema de login, com recuperação de senha enviando token por e-mail. Vou postar para possíveis críticas construtivas e avaliação de possíveis erros :)

 

Ps.: Um salve pro William Bruno. Graças a sua ajuda consegui compreender alguns conceitos que me fizeram, nesse fds, deixar a programação estruturada e olha a programação Orientada à Objetos com outros olhos. Vlw man, muito grato mesmo. Um salve também pro Williams, não esqueci de você man.

 

Detalhe, consegui remover todo html e header's de dentro das classes e passei a trabalhar com isso diretamente no arquivo que está executando o código.

 

Seguem os códigos

 

Dao.class.php

 

 

 <?phpclass Dao extends PDOConnectionFactory {public function Dao(){$this->conex = PDOConnectionFactory::getConnection();} function check_reg( $table, $field, $value ){$sql = $this->conex->prepare( "SELECT * FROM $table WHERE $field = '$value'" );$exe = $sql->execute();$row = $sql->rowCount();} function insert( $table, $fields, $values ){$sql = $this->conex->prepare( "INSERT INTO $table ($fields) VALUES ($values)" );$exe = $sql->execute();$row = $sql->rowCount();} function getAll( $table, $filter ){$sql = $this->conex->prepare( "SELECT * FROM $table WHERE $filter" );$exe = $sql->execute();$row = $sql->rowCount(); return $this->processResults( $row, $sql );} private function processResults( $row, $sql ) {$results = array();if( $row > 0 ) {while( $lin = $sql->fetch( PDO::FETCH_OBJ ) ) {$results[] = $lin;}}return $results;} function update( $table, $parameters, $id ){$sql = $this->conex->prepare( "UPDATE $table SET $parameters WHERE id = $id" );$exe = $sql->execute();$row = $sql->rowCount(); } function store( $table, $field, $value, $data ){if( $data[ 'id' ] ){foreach ( $data as $auxFields => $auxValues ){if( $auxFields != 'id' ){$parameters .= $parameters ? ', '.$auxFields.' = \''.$auxValues.'\'' : $auxFields.'=\''.$auxValues.'\'';}} $this->update( $table, $parameters, $data[ 'id' ] );}else{if( $this->check_reg( $table, $field, $value ) == false ){foreach ( $data as $auxFields => $auxValues ){if( $auxFields != 'id' ){$fields .= $fields ? ', '.$auxFields : $auxFields;$values .= $values ? ', \''.$auxValues.'\'' : '\''.$auxValues.'\'';}}$this->insert( $table, $fields, $values );}}}}?>

DaoLogin.class.php

 

 

 <?phpclass DaoLogin extends Dao{ /*** Method: Logout* Desloga um usuário do sistema*/function Logout(){unset( $_SESSION[ 'logado' ] );if( session_destroy() )return true;}/*** Method: CheckSession* Checa se existe uma sessão para o usuário*/function CheckSession(){if( ( !isset( $_SESSION[ 'logado' ] ) ) || ( empty( $_SESSION[ 'logado' ] ) ) ){return true;}}/*** Method: Length* Verifica o tamanho de uma string*/function Length( $string ){$length = strlen( $string );return $length;}/*** Method: Equality* Verifica o tamanho de uma string*/function Equality( $string1, $string2 ){if( $string1 != $string2 )return true;}}?>

SendMain.class.php

 

 

 <?phpclass SendMail { public function Mail( $subject, $msg, $email ){$mail = new PHPMailer();$mail->IsSMTP();$mail->AddAddress( $email );$mail->IsHTML(true);$mail->Host      = '';$mail->SMTPAuth  = true;$mail->Username  = '';$mail->Password  = '';$mail->Port      = 587;$mail->From      = '';$mail->FromName  = '';$mail->CharSet   = 'utf-8' ;$mail->Subject   = $subject;$mail->SMTPDebug = true;$mail->Body      = $msg;$enviado         = $mail->Send();$mail->ClearAllRecipients();$mail->ClearAttachments();  }        }?> 

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.