Запрос не отменяет связь изображения с БД - PullRequest
0 голосов
/ 26 марта 2020

Почему изображение из каталога не будет удалено?

Все остальное работает нормально, но изображение просто не связывается.

Вот мой php код:

if(isset($_POST['delbtn'])){
$code = $_POST['delete'];

$stmt = $db->prepare("SELECT * FROM interviews WHERE reference = :reference");
$stmt->bindParam(':reference', $code, PDO::PARAM_STR);
$stmt->execute();
$cnt = $stmt->rowCount();
if($cnt!='0'){

$query = "delete from interviews where id IN(".$_GET['coach'].")";
$stmt = $db->prepare($query);
$stmt->execute();
while($rw = $stmt->fetch())
 {
     $file='uploads/interviews/'.$rw['image'];
     @unlink($file);
 }          
                echo "<script type='text/javascript'>
                alert('Entry successfully deleted.');
                window.location.href = 'need-help-with-interview.php';
                </script>";
exit;
}else{
                echo "<script type='text/javascript'>
                alert('You are not authorized to delete this entry.');
                window.location.href = 'need-help-with-interview.php';
                </script>";
exit;
 }
}

1 Ответ

0 голосов
/ 26 марта 2020
$query = "delete from interviews where id IN(".$_GET['coach'].")";
$stmt = $db->prepare($query);
$stmt->execute();
while($rw = $stmt->fetch())
{
 $file='uploads/interviews/'.$rw['image'];
 @unlink($file);
} 

Вы пишете код для удаления из таблицы, который будет возвращать логическое значение, а не строки. Сначала выберите данные, которые вы удаляете из базы данных, а затем удалите изображения из папки.

После удаления изображений удалите записи из БД.

(Примечание. В вашем запросе delete имеется уязвимость безопасности инъекции SQL. Это может быть легко изменено злоумышленником для удаления всего в вашей таблице. Пожалуйста, используйте привязку параметра, чтобы исправить это).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...