2015-05-14 3 views
1

Я пытаюсь загрузить unlink() изображение из папки, в то время как это соответствует удалению строки из базы данных. Удаление строки из db отлично работает, но я не могу заставить unlink работать.Удаление ссылки при удалении строки - pdo

Я googled в течение 2 часов и пробовал много чего, но он все еще не работает, я думаю, что у меня небольшой сбой, но я не могу понять это.

Можете ли вы предложить, что попробовать.

<?php 
$pdo = connect(); 
if (isset($_GET['delete'])) { 

    $delete_id = $_GET['delete']; 

    $img = "SELECT slika FROM filmovi WHERE id = $delete_id"; 
    $q = $pdo->prepare($img); 
    $q->execute(); 
    $row = $q->fetchAll(); 

    $sql = "DELETE FROM filmovi WHERE id = :filmID"; 
    $query = $pdo->prepare($sql); 
    $query->bindParam(':filmID', $delete_id, PDO::PARAM_INT); 
    $query->execute(); 

    $image = $row['slika']; 

    unlink("assets/img/movies/.'$image"); 

    header("Location: index.php?movies"); 
    die(); 

} 
+0

Я предполагаю, что ваши файлы на самом деле не названы с именем '.'' в начале имени файла. –

+0

нет, $ image - это всего лишь один вар код ... что делать? –

ответ

2
unlink("assets/img/movies/.'$image"); 

Так говорят $image содержит "image.jpg". Путь вы Построенная

assets/img/movies/.'image.jpg 

То, что вы, скорее всего, хочу

unlink("assets/img/movies/". $image); 
0

Один комментарий помог мне, но он удалил. Я удалил FetchAll и оставил только Fetch. Теперь он работает без ошибок. Это код:

<?php 
$pdo = connect(); 
if (isset($_GET['delete'])) { 

    $delete_id = $_GET['delete']; 

    $img = "SELECT * FROM filmovi WHERE id = $delete_id"; 
    $q = $pdo->prepare($img); 
    $q->execute(); 
    $row = $q->fetch(); 

    $sql = "DELETE FROM filmovi WHERE id = :filmID"; 
    $query = $pdo->prepare($sql); 
    $query->bindParam(':filmID', $delete_id, PDO::PARAM_INT); 
    $query->execute(); 

    $image = $row['slika']; 

    unlink("assets/img/movies/$image"); 

    header("Location: index.php?movies"); 
    die(); 

} 
+0

- это правильный способ? ... оно работает. разъединить ("активы/IMG/кино/$ изображения"); –

+0

Да, это я оставил этот комментарий. Не думал, что это поможет, поэтому я удалил его. –

+0

* «этот допустимый способ?» * - Да, поскольку переменная находится внутри оператора с двумя кавычками. * «он работает» * - если он работает, он действителен тогда ;-) Это, однако, 'unlink ('assets/img/movies/$ image');' будет терпеть неудачу, поскольку оператор находится внутри одинарных кавычек. Переменные не анализируются внутри операторов с одной кавычкой. –

Смежные вопросы