Myślę, że twoje pytanie nie odzwierciedla twojego problemu? Wygląda na to, że masz problem z pobraniem źródła obrazu z bazy danych? Poza podanym przez ciebie kodem niewiele pomaga. może opublikować kod związany z działaniem bazy danych, abyśmy mogli zobaczyć, co jest nie tak z aktualizowaniem/pobieraniem danych z bazy danych.
Jednak na podstawie założeń spróbuję odpowiedzieć na Twoje pytanie.
Jeśli żadne inne dane nie zostaną przekazane wraz z żądaniem, z wyjątkiem aktualizacji obrazu, to rozwiązaniem powinno być przeniesienie zapytań bazy danych do bloku if. Czyli .. nie aktualizuj bazy danych, jeśli obraz nie jest przesłany.
if (!empty($_FILES['fileToUpload']))
{
$dest = 'images/Uploaded/';
if (move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $dest.$_FILES['fileToUpload']['name']))
$file = $dest.$_FILES['fileToUpload']['name'];
//database update here
}
bo jeśli zdarzy zapytań do bazy danych na zewnątrz bloku IF, bazy danych będą aktualizowane tak, i zakładam, że przechodzą w zmiennej $ plików w zapytaniu. a plik $ w tym przypadku będzie pusty, ponieważ plik $ jest zdefiniowany i ma wartość w bloku IF.
chciałbym dodatkowo pomóc, ale do tego trzeba, aby pomóc nam trochę więcej informacji, takich jak,
Można dzielić się więcej o kodzie (można ukryć dane wrażliwe)
są istnieją inne dane wysyłane wraz z przesyłaniem, które mogą być konieczne, aby zaktualizować dane użytkownika w bazie danych, ale zachować obraz w niezmienionym stanie?
Jeśli tak, to ..masz 2 opcje:
1) pobierz bieżący plik użytkownika przed dokonaniem aktualizacji, wybierając go z bazy danych, zapisz go w zmiennej $ file przed podanym przez ciebie blokiem IF. Jeśli warunek jest prawdziwy, zmienna $ file zostanie zaktualizowana, jeśli nie, zmienna $ file będzie miała starą przypisaną do niej wartość, która jest bieżącym plikiem użytkownika.
2) utwórz dynamiczne zapytanie sql, co oznacza, że jeśli użytkownik przesłał nowe zdjęcie, dodaj to do zapytania, jeśli nie, nie dodawaj go do zapytania i aktualizuj tylko te pola, które wymagają aktualizacji. Nie znam PDO, ale koncepcja jest tutaj.
mógłby po prostu użyć warunku przy budowie zapytanie. – Burki
@Hunter: Możesz spróbować tego http://www.dreamincode.net/forums/topic/118382-how-to-update-an-image-in-mysql/ – Abdul
LUB użyj if (file_exists ($ TARGET_PATH)) { } Twój kod } – Abdul