Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Não altera no banco

Boa noite,

Estou começando aprender Curso de PHP I: Orientação a objetos com sua linguagem preferida. Meu Problema é um seguinte eu dou um var_dump($query) conforme o código abaixo.

function alteraUsuario($conexao, usuario $usuario) {
    $senhaMd5 = md5($usuario->senha);
    $query = "UPDATE  usuarios 
                SET nome = '{$usuario->nome}',  email = '{$usuario->email}', endereco ='{$usuario->endereco}', cidade = '{$usuario->cidade}', estado = '{$usuario->estado}', raca_id = {$usuario->raca->id}, usuario = '{$usuario->usuario}', senha = '{$senhaMd5}'
                       WHERE id = '{$usuario->id}'";
                    var_dump($query);

     return mysqli_query($conexao, $query);
}

DETALHANDO MEU PROBLEMA Passo 1 Estou com meu cadastro tudo preenchido. Passo 2 clico no botão "ALTERAR CADASTRO". Passo 3 Abre outro formulário com todos os campos CARREGADO(preenchido). Passo 4 Escolho um campo ex(campo nome: Luiz) e mudo para ex(campo nome: Alex) o resto esta tudo preenchido normal e clico no botão "ALTERAR". A mensagem vem certinho "usuário alterado com sucesso", PORÉM fica com mesmo CADASTRO ANTERIOR deu um VAR_DUMP, e está trazendo alteração do campo normal, porem não insere no banco!

'UPDATE  usuarios 
                SET nome = 'Alex',  email = 'le@hotmail.com', endereco ='aaaa', cidade = 'dddd', estado = 'dddd', raca_id = 13, usuario = 'Alex', senha = '28c8edde3d61a0411511d3b1866f0636'
                       WHERE id = ''' (length=245)

nesse VAR_DUMP ai em CIMA eu alterei o campo nome e o campo usuario antes ERA luiz agora era para ser alex da para percebe que ele fez certo a alteração porem NÃO insere no banco OU SEJA fica com as mesma informações de antes . espero que tenham entendido muito obrigado!

4 respostas

Olá, @Luiz Henrique Alves

Poderia subir seu projeto no GitHub e disponibilizar um link para que possamos analisar.

No aguardo,

Att,

solução!

Oi Luiz, tudo bom?

Pelo dump:

'UPDATE  usuarios 
                SET nome = 'Alex',  email = 'le@hotmail.com', endereco ='aaaa', cidade = 'dddd', estado = 'dddd', raca_id = 13, usuario = 'Alex', senha = '28c8edde3d61a0411511d3b1866f0636'
                       WHERE id = ''' (length=245)

Da pra ver que seu WHERE está com o ID vázio. Isso significa que o usuário está sem id =)

Da uma verificada nos dados do usuário que está sendo fornecido pro alteraUsuario

Sem o identificador a query não vai afetar nenhuma instância no banco

E ai André Chaves blz!

Foi exatamente isso que aconteceu, eu mesmo estudei o código e resolvi, muito obrigado!

AH. Parabéns pela sua competência....

Boa Luiz, fico feliz que tenha resolvido!

Valeu =) haha