"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como solucionar problemas de upload de imagens PHP que não conseguem ser inseridos em um banco de dados MySQL?

Como solucionar problemas de upload de imagens PHP que não conseguem ser inseridos em um banco de dados MySQL?

Publicado em 16/01/2025
Navegar:715

How to Troubleshoot PHP Image Uploads Failing to Insert into a MySQL Database?

Como fazer upload de imagens para um banco de dados MySQL usando código PHP

O upload de imagens para um banco de dados MySQL é uma tarefa comum no desenvolvimento de aplicações web. No entanto, é importante garantir que seu código PHP esteja configurado corretamente para lidar com dados de imagem de maneira eficiente.

Descrição do problema

Um desenvolvedor está enfrentando problemas com seu código PHP, que tem como objetivo inserir imagens em um banco de dados MySQL. O código não gera nenhuma mensagem de erro, mas não consegue inserir os dados da imagem no banco de dados. Um trecho do código é fornecido abaixo:

$image = file_get_contents ($_FILES['image']['tmp_name']);
$image_name = $_FILES['image']['name'];
if ($image_query = mysql_query ("insert into product_images values (1,'$image_name',$image )"))
{
  echo $current_id;
 //echo 'Successfull';
}
else
{
  echo mysql_error();
}

Solução

Após análise, os seguintes problemas foram identificados no código:

  • Configuração da tabela SQL: Certifique-se de que a coluna na tabela MySQL designada para armazenar imagens seja do tipo BLOB para acomodar dados binários.
  • MySQL Function Usage: Moderno O código PHP deve utilizar funções PDO ou MySQLi para interações de banco de dados em vez de funções mysql obsoletas.
  • Estrutura do formulário: O formulário HTML fornecido no snippet de código está desatualizado e deve seguir o seguinte formato:
  • Escape de imagem: Ao lidar com dados de imagem como BLOBs, certifique-se de que eles sejam escapados usando mysql_real_escape_string() para evitar erros de sintaxe.

Código Revisado

O código a seguir incorpora o necessário correções:

$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name = addslashes($_FILES['image']['name']);
$sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";
if (!mysql_query($sql)) { // Error handling
    echo "Something went wrong! :("; 
}

Ao resolver esses problemas, o código PHP será capaz de fazer upload de imagens com sucesso no banco de dados MySQL. Também é recomendável considerar o armazenamento de arquivos de imagem em disco, em vez de no banco de dados, por motivos de desempenho e escalabilidade.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3