How to do image UPDATE mysql php [closed]

1

I have this code and need to update the image that is already saved in the database, but it does not work.

Codes

    <?php

require 'conexao.php';

//Pega o id da url
if ( isset( $_GET['id'] ) && ! empty( $_GET['id'] ) ) {
    //Prepra ligacao php mysql
    $stm = $pdo->prepare( 'SELECT id, nome, conteudo, tipo, tamanho FROM ifsp WHERE id = :id LIMIT 1' );
    //Atribui o paramentro ao $_GET['id'] que é o id que esta na url e coloca ele no prepare acima
    $stm->bindValue( ':id', $_GET['id'] );
    //Executa o pdo
    $stm->execute();

    //Tranforma o consulta em matriz
    $consulta = $stm->fetch( PDO::FETCH_ASSOC );

// Se executado
if ($stm->execute())
{
    // Alocando foto
    $foto = $stm->fetchObject();

    // Se existir
    if ($foto != null)
    {

    }
}

// Verificando se selecionou alguma imagem
if (!isset($foto->conteudo))
{
    exit;
} else {

    // Recupera os dados dos campos
    $foto = $_FILES['foto'];
    $nome = $foto['name'];
    $tipo = $foto['type'];
    $tamanho = $foto['size'];

     // Transformando foto em dados (binário)
    $conteudo = file_get_contents($foto['tmp_name']);

    if ( $_POST ) {

        //Ligação php mysql
            $stm = $pdo->prepare( 'UPDATE ifsp SET nome = :nome,
                                                   conteudo = :conteudo,
                                                   tipo = :tipo,
                                                   tamanho = :tamanho WHERE id = :id' );

        //Atribui o paramentro ao $_POST['e a referecia onde ele esta'] e coloca ele no prepare acima
        $stm->bindParam(':nome', $nome, PDO::PARAM_STR);
        $stm->bindParam(':conteudo', $conteudo, PDO::PARAM_LOB);
        $stm->bindParam(':tipo', $tipo, PDO::PARAM_STR);
        $stm->bindParam(':tamanho', $tamanho, PDO::PARAM_INT);
            //Atribui o paramentro ao $_GET['id'] que é o id que esta na url e coloca ele no prepare acima
        $stm->bindValue( ':id', $_GET['id'] );

            //Executa o pdo
            $stm->execute();

            //depois de executar o header o rediciona para outro local
            header( 'Location: index.php' );
        }
    }
}
    require 'views/editarfoto.php';

html

    <!--Inclui a pagina inicial (cabeçalho) pois é iguaal para todos-->
<?php include 'header.php'; ?>
<h1>Editar Contato</h1>
    <!--submete o metodo post para a url informada com o id do comando php a essa url-->
    <form enctype="multipart/form-data" action='editarfoto.php?id=<?php echo $consulta['id']; ?>'  method='post'>
        <label>Foto</label>
        <input type="file" name="foto" />

        <input type="submit" value="Salvar" />
        <a href='index.php'>Cancelar</a>
    </form>

<?php include 'footer.php'; ?>

bank

CREATE TABLE 'ifsp' (
 'id' int(10) unsigned NOT NULL AUTO_INCREMENT,
 'nome' varchar(60) NOT NULL,
 'conteudo' mediumblob NOT NULL,
 'tipo' varchar(20) NOT NULL,
 'tamanho' int(10) unsigned NOT NULL,
 PRIMARY KEY ('id')
) ENGINE=InnoDB;
    
asked by anonymous 05.10.2015 / 05:27

0 answers