Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos, estou utilizando o PDO ja a algum tempo e nunca tive este problema, o que esta me deixando bastante frustrado, além disso não consegui achar nada no google sobre o assunto.
Bem, basicamente estou fazendo um INSERT e ao verificar a linha inserida todas as colunas possuem o mesmo valor do último bindparam que fiz... no caso a senha do usuário.
$manipulador = SCPGO :: get_con_bd ( ) -> prepare ( $sql );
foreach ( array_slice ( $this -> propriedadesBd , 1 ) as $propriedade => $detalhes )
{
$manipulador -> bindParam ( ":$propriedade" , $valor , ( $tipo == 'INT' ) ? PDO::PARAM_INT : PDO::PARAM_STR );
}
$resultado = $manipulador -> execute ( );
1 - O SCPGO :: get_con_bd ( ) retorna a conexão PDO
2 - $this -> propriedadesBd é uma propriedade do objeto que contém todas as colunas/tipos/valores a serem inseridos no formato Array ( 'nome' => array ( 'nome' => 'Rafael' , 'tipo' => 'STR' ) )
3 - Uso o array_slice para ignorar a propriedade ID que sempre é a primeira
Debugando com echos recebo seguinte:
INSERT INTO
usuarios
(
nome_completo , email , login , senha
)
VALUES
(
:nome_completo , :email , :login , :senha
)
$manipulador -> bindParam ( ":nome_completo" , rafael , ( STR == 'INT' ) ? PDO::PARAM_INT : PDO::PARAM_STR );
$manipulador -> bindParam ( ":email" , eu@dominio.com.br , ( STR == 'INT' ) ? PDO::PARAM_INT : PDO::PARAM_STR );
$manipulador -> bindParam ( ":login" , rafael , ( STR == 'INT' ) ? PDO::PARAM_INT : PDO::PARAM_STR );
$manipulador -> bindParam ( ":senha" , 0cc175b9c0f1b6a831c399e269772661 , ( STR == 'INT' ) ? PDO::PARAM_INT : PDO::PARAM_STR );
Ou seja, ele esta passando os valores corretos... Alguém ja esteve com este problema?
Grato galera!
----------------
Complementando: Fazendo o bindparam separadamente ocorre o mesmo problema!
$valor='rafael de almeida ribeiro dias';
$manipulador -> bindParam ( ":nome_completo" , $valor , PDO::PARAM_STR );
$valor='eu@dominio.com.br';
$manipulador -> bindParam ( ":email" , $valor , PDO::PARAM_STR );
$valor='rafael';
$manipulador -> bindParam ( ":login" , $valor , PDO::PARAM_STR );
$valor='123';
$manipulador -> bindParam ( ":senha" , $valor , PDO::PARAM_STR );Carregando comentários...