sql >> Databáze >  >> RDS >> Mysql

Nelze nahrát a uložit obrázek do databáze pomocí php

K odeslání dotazu potřebujete funkci, jinak jste právě vyplnili řetězec:this:

$insert = "INSERT INTO image(name,picture) VALUES ('$image_name','$image')";

by mělo následovat toto:

mysqli_query($con, $insert);

Upozornění jsou způsobena několika problémy s vaším kódem. Nejprve kontrolujete, zda nebyl soubor nahrán nesprávným způsobem:toto

if(isset($_FILES['image'])){
    $file = $_FILES['image']['tmp_name'];
}

Vždy nastaví $file proměnnou, i když do formuláře nebyl vybrán žádný soubor, což vede k tomu, že se tento příkaz if:

nikdy nespustí
if(!isset($file)){
    echo "Please select an image";
}

a místo toho vždy spouštět to, co je v bloku else, což způsobuje chyby, protože vámi zmíněné funkce, které jsou obsaženy v tomto bloku else, nejsou schopny pracovat s žádným souborem.

Problém tedy vyřeší pouze správná kontrola nahrání souboru:jedním ze způsobů, jak to udělat, by bylo nejprve odstranit toto, což je neužitečné

if(isset($_FILES['image'])){
    $file = $_FILES['image']['tmp_name'];
}

a poté změňte toto:

if(!isset($file)){
    echo "Please select an image";
}

na toto:

if(!isset($_FILES['image']['tmp_name'])){
    echo "Please select an image";
}


  1. Jednoduchá uvozovka, dvojitá uvozovka a zpětné zaškrtnutí v dotazech MySQL

  2. Hibernate anotace pro sériový typ PostgreSQL

  3. Vložit text s jednoduchými uvozovkami v PostgreSQL

  4. com.zaxxer.hikari.pool.PoolInitializationException:Výjimka během inicializace fondu