Ir para conteúdo

Arquivado

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

Vales & Dores

Como colocar mais um campo em bindParam?

Recommended Posts

Amigos tenho email e senha gravado na session_start, mas tenho que ter a id também como posso fazer isso com conexao estilo PDO tenho que acrescentando mais um campo em bindParam?

 

To precisando por que agora tenho que rodar um update e nao tem id (int) dentro da session e sem ela não da pra fazer a WHERE do usuario regeita strings.

 

Pelo menos comigo não funciona.

 

Abraço para todos me ajude deu braco cara vou tentar fazer uma tentativa:

 

$stmt = $dsn->prepare("SELECT email, senha FROM cadastro WHERE email = ? AND senha = ?"); 
$stmt->bindParam(1, $_POST['email'], PDO::PARAM_STR); 
$stmt->bindParam(2, $_POST['senha'], PDO::PARAM_STR); 
$stmt->execute();

Abraço Pessoal e Muito Obrigado a todos.

OBS O site esta no ar com banco de dados gratis so que eu to tentando resolver problemas que vem aparecendo depois vou fazer uma video aula de meu intendimento e a realidade para ajudar o pessoal.

Compartilhar este post


Link para o post
Compartilhar em outros sites
$stmt = $dsn->prepare("SELECT email, senha FROM cadastro WHERE email = ? AND senha = ? AND id = ?"); 
$stmt->bindParam(1, $_POST['email'], PDO::PARAM_STR); 
$stmt->bindParam(2, $_POST['senha'], PDO::PARAM_STR); 
$stmt->bindParam(3, $_POST['id'], PDO::PARAM_INT);
$stmt->execute();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não Funciona, nao grava a session

 

 

Amigo me explica como o post que ta dentro do banco de dados vai vir por poste?

Guem vai chamar gravar e mandar via post para que eu registre dentro do bind?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troca bindParam por bindValue()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troca bindParam por bindValue()

 

 

Assim?

 

$stmt = $dsn->prepare("SELECT id, email, senha FROM cadastro WHERE email = ? AND senha = ? AND id = ?"); 
$stmt->bindParam(1, $_POST['email'], PDO::PARAM_STR); 
$stmt->bindParam(2, $_POST['senha'], PDO::PARAM_STR);
$stmt->bindValue(3, $_POST['id'], PDO::PARAM_INT); 
$stmt->execute();

 

 

Desse geito eu fiz um var_dump e nao tem saida de ID

na tela nao amigo o que esta avendo to tentando achar no google tambem, se achar eu posto valeu...

 

Gente como é que eu vou chamar a id pelo post ? nao to sacando essa logica nao tudo bem deve ser por que sou burrinho mas ta complicado de fazer esse casamento, post depende de uma intervenção humana para ser remetido entrada de dados vamos dizer, e nesse caso eu quem é que ta mandando ele para bindValue, ta tudo rodando gente socorro

Compartilhar este post


Link para o post
Compartilhar em outros sites

viajei cara..

$stmt = $dsn->prepare("SELECT * FROM cadastro WHERE email = ? AND senha = ?"); 
$stmt->bindParam(1, $_POST['email'], PDO::PARAM_STR); 
$stmt->bindParam(2, $_POST['senha'], PDO::PARAM_STR); 
$stmt->execute();

 

joga numa session usuario o resultado da pesquisa.

 

daí você cria seu update..

$sql = "UPDATE cadastro SET"
   ." email = :email,"
   ." senha = :senha"
   ." WHERE id = :id ;"
;

$stmt = $dsn->prepare($sql); 
$stmt->bindValue(':email', $_POST['email'], PDO::PARAM_STR); 
$stmt->bindValue(':senha', $_POST['senha'], PDO::PARAM_STR); 
$stmt->bindValue(':id', $_SESSION['usuario']->id, PDO::PARAM_INT); 
$stmt->execute();

Compartilhar este post


Link para o post
Compartilhar em outros sites

$stmt = $dsn->prepare("SELECT email, senha FROM cadastro WHERE email = ? AND senha = ?"); 
$stmt->bindParam(1, $_POST['email'], PDO::PARAM_STR); 
$stmt->bindParam(2, $_POST['senha'], PDO::PARAM_STR); 
$stmt->execute();

 

Neste momento, $stmt possui email e senha do usuário encontrado, se houver.

 

A primeira coisa a fazer é adicionar o ID na consulta

 

$stmt = $dsn->prepare("SELECT id, email, senha FROM cadastro WHERE email = ? AND senha = ?"); 

 

depois de

$stmt->execute();

 

Você tem o resultado da consulta e precisa buscar os valores. Veja se, mais pra frente, existe algo parecido com

$stmt->fetch()

 

Caso encontre, poste esta linha e as posteriores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste momento, $stmt possui email e senha do usuário encontrado, se houver.

 

A primeira coisa a fazer é adicionar o ID na consulta

 

$stmt = $dsn->prepare("SELECT id, email, senha FROM cadastro WHERE email = ? AND senha = ?"); 

 

depois de

$stmt->execute();

 

Você tem o resultado da consulta e precisa buscar os valores. Veja se, mais pra frente, existe algo parecido com

$stmt->fetch()

 

Caso encontre, poste esta linha e as posteriores.

Bingo amigo exatamente.

lembrei que os campos de uma tabela tem que ser chamada em um selec all e depois como a conexao

é PDO temos que fazer um foreach para depois alojar o campo id, e-mail, senha, ...

 

Só que eu pensei assim vou ter que fazer o array aqui dentro ?

Decidi que nao fui ate a primeira pagina onde se chama selec a primeira vez e coloquei a id

dentro de uma SESSION agora posso chamar ela para todas as paginas.

 

gente o problema e mais facil resolver ja no primeiro selec do que ficar criando consulta a doidado ainda tenho problemas mas assim que terminar eu vou fazer uma video aula para colocar aqui para voces estou na batalha amigos muito obrigado. A todos.... OBRIGADO

Compartilhar este post


Link para o post
Compartilhar em outros sites

viajei cara..

$stmt = $dsn->prepare("SELECT * FROM cadastro WHERE email = ? AND senha = ?"); 
$stmt->bindParam(1, $_POST['email'], PDO::PARAM_STR); 
$stmt->bindParam(2, $_POST['senha'], PDO::PARAM_STR); 
$stmt->execute();

 

joga numa session usuario o resultado da pesquisa.

 

daí você cria seu update..

$sql = "UPDATE cadastro SET"
   ." email = :email,"
   ." senha = :senha"
   ." WHERE id = :id ;"
;

$stmt = $dsn->prepare($sql); 
$stmt->bindValue(':email', $_POST['email'], PDO::PARAM_STR); 
$stmt->bindValue(':senha', $_POST['senha'], PDO::PARAM_STR); 
$stmt->bindValue(':id', $_SESSION['usuario']->id, PDO::PARAM_INT); 
$stmt->execute();

 

 

p**** cara que maneiro voce sta tentando instancia ->a session para id rs que legal vou tentar pra ver se roda value amigo de verdade

Compartilhar este post


Link para o post
Compartilhar em outros sites

p**** cara que maneiro voce sta tentando instancia ->a session para id rs que legal vou tentar pra ver se roda value amigo de verdade

na realidade estou resgatando um parametro publico de uma classe instanciada na "SESSION['usuario']"

se sua classe não é com id public você precisa de um getter

 

class Usuario{
   protected $id;
   public function getId(){
       return $this->id;
   }
}

$Usuario = $stmt->fetch(PDO::FETCH_OBJ,'Usuario'); // alguma coisa assim
$_SESSION['usuario'] = $Usuario;

$_SESSION['usuario']->getId();

Compartilhar este post


Link para o post
Compartilhar em outros sites

na realidade estou resgatando um parametro publico de uma classe instanciada na "SESSION['usuario']"

se sua classe não é com id public você precisa de um getter

 

class Usuario{
   protected $id;
   public function getId(){
       return $this->id;
   }
}

$Usuario = $stmt->fetch(PDO::FETCH_OBJ,'Usuario'); // alguma coisa assim
$_SESSION['usuario'] = $Usuario;

$_SESSION['usuario']->getId();

CAlma Grande amigo ainda estou em Procedural no fui para POO rs desculpa eu até intendi o que disse mas classe e f*** a pesar de baixar a cabeça quem programa com POO e muito loco tem varias manobras de segurança muita coisa mesmo. mas agora mesmo vou fazer um video e vou postar aaqui para mostrar para voces fica de olho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui a falha e minhas paranoias Obrigado

 

 

 

Aqui esta o video:

http://www.youtube.com/watch?v=Mzl241UtFOI&feature=youtu.be

 

loveme.eu.pn

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.